Давайте предположим, что list1 = [2, 241, 21, 512, 142]
и list2 = ['a', 'b', 'a', 'b', 'a']
, как вы описали. Я не знаю, какие именно ограничения у вас есть, но позвольте мне использовать два словаря в дополнение к начальной настройке.
- Получить уникальные ключи в
list2
и подсчитать количество ключей.
Давайте определим пустой словарь cnt_dic
для подсчета количества ключей. После подсчета ключей создайте копию словаря res_dic
с нулевым значением.
cnt_dic = {}
for key in list2:
if key not in cnt_dic:
cnt_dic[key] = 1
else:
cnt_dic[key] += 1
res_dic = cnt_dic.copy()
for key in res_dic.keys():
res_dic[key] = 0
Суммируйте целые числа, используя собранные ключи.
for num, key in zip(list1, list2):
res_dic[key] += num
Рассчитать средние значения.
for key in cnt_dic.keys():
res_dic[key] /= cnt_dic[key]
Тогда res_dic
будет содержать {'a': 55.0, 'b': 376.5}
.