ниже - мой список списков;Python: добавление значения из списка списков
db_rows = [('a','b','c',4),
('a','s','f',6),
('a','c','d',6),
('a','b','f',2),
('a','b','c',6),
('a','b','f',8),
('a','s','f',6),
('a','b','f',7),
('a','s','f',5),
('a','b','f',2)]
, если первые три значения одинаковы во внутреннем списке, то мне нужно добавить 4-ое значение для создания нового списка
мне нужен список результат:
final_list = [('a','b','c',10),
('a','s','f',17),
('a','c','d',6),
('a','b','f',19)]
Я попытался ниже сценария (не работает):
final_list = []
for row in db_rows:
temp_flag=False
temp_list = []
val = 0
for ref_row in db_rows:
if row != ref_row:
if row[0]==ref_row[0] and row[1]==ref_row[1] and row[2]==ref_row[2]:
val = val + ref_row[3]
temp_flag=True
temp_list=(row[0],row[1],row[2],val)
if temp_flag==False:
temp_list=row
final_list.append(temp_list)
, пожалуйста, советую мне.
Передача вашей попытки для достижения этого результата. –
Попробуйте использовать словарь с первыми тремя значениями в качестве ключа. –
Пожалуйста, исправьте желаемый выход. Это должно быть '('a', 'c', 'd', 6)' вместо '('a', 'b', 'd', 6)'. –