Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Фильтрация списка кортежей Python

Добрый день, скажите, пожалуйста, в python можно отфилтровать так, если первые два элементы кортежа повторяются, то просуммировать их 3 элемент, а если нет, то оставить без изменений?
Если можно, подскажите, пожалуйста, как. Или хотя бы дайте наводку. Спасибо

По дате
По рейтингу
Аватар пользователя
Просветленный

Как - циклом )
Добавляешь в словарь первые два элемента как ключ, третий как значение

Аватар пользователя
Просветленный
123456789
 from itertools import groupby 
data = ((3,2,3), (1,2,3), (2,3,4), (2,3,4), (2,3,2), (1,3,7)); 
datalist = sorted(data, key=lambda x : x[0]) 
res = [] 
for key, values  in groupby(datalist, key=lambda x : x[0]): 
    v = list(values) 
    s = sum(x[2] for x in v) 
    res = res + list(map(lambda x : (x[0], x[1], s),  v)) 
print(tuple(res))