У меня есть вложенный список, подобный приведенному ниже, для которого я пытаюсь суммировать значения столбца 1, связанные с тем же значением в столбце 2, и добавить новый подсписок с суммой и еще один подсписок с «Всего ".
a = [
['45', '00128'],
['88', '00128'],
['87', '00128'],
['50', '88292'],
['69', '88292'],
['70', '72415'],
['93', '72415'],
['79', '72415']
]
Мой текущий код выглядит так, как показано ниже, для которого, я полагаю, он будет работать с чем-то над списком a
, но ничего не меняет внутри a
.
for sl in a:
x = sl[1]; c0=0
if (sl[1] == x):
c0 = c0 + int(sl[0])
else:
a.insert(a.index(sl)+1,[c0,''])
a.insert(a.index(sl)+2,['Total',''])
Результат, который я ищу, выглядит следующим образом:
b = [
['45', '00128'],
['88', '00128'],
['87', '00128'],
['220', ''], # This is 45 + 88 + 87
['Total', ''],
['50', '88292'],
['69', '88292'],
['119', ''], # This is 50 + 69
['Total', ''],
['70', '72415'],
['93', '72415'],
['79', '72415'],
['242', ''], # This is 70 + 93 + 79
['Total', '']
]
Как это сделать? спасибо
ОБНОВЛЕНИЕ
Входной список с 4 столбцами, как один слева, и необходимо суммировать col1, col3 и col4, чтобы получить правильное значение.
a = [ >> b = [
['45', '00128', '2','4'], >> ['45', '00128', '2', '4' ],
['88', '00128', '1','3'], >> ['88', '00128', '1', '3' ],
['87', '00128', '4','0'], >> ['87', '00128', '4', '0' ],
['50', '88292', '1','1'], >> ['220', '' , '7', '7' ],
['69', '88292', '9','5'], >> ['Total', '', 'Total', 'Total'],
['70', '72415', '8','9'], >> ['50', '88292', '1', '1' ],
['93', '72415', '3','2'], >> ['69', '88292', '9', '5' ],
['79', '72415', '5','7'] >> ['119', '', '10', '6' ],
] >> ['Total', '', 'Total', 'Total'],
>> ['70', '72415', '8', '9' ],
>> ['93', '72415', '3', '2' ],
>> ['79', '72415', '5', '7' ],
>> ['242', '', '16', '18' ],
>> ['Total', '', 'Total', 'Total'],
>> ]