У меня есть список списка, который выглядит следующим образом:
['000000000000012', 'AUD ', ' -1500000.0000', '29473550', 'TD CASH', 'Currencies', 'Unsettled Transactions', 'Unsettled']
['000000000000012', 'BRL ', ' 6070.5400', ' ', 'TD CASH', 'Beginning Balance', 'Positions', 'Settled']
['000000000000012', 'MXN ', ' 19524996.5400', ' ', 'TD CASH', 'Beginning Balance', 'Positions', 'Settled']
['000000000000012', 'USD ', ' 9937.92', '29473153', 'TD CASH', 'Sales', 'Unsettled Transactions', 'Unsettled']
['000000000000012', 'USD ', ' 9937.92', '29473155', 'TD CASH', 'Sales', 'Unsettled Transactions', 'Unsettled']
['000000000000012', 'USD ', ' 100252.78', '29473080', 'TD CASH', 'Sales', 'Unsettled Transactions', 'Unsettled']
['000000000000012', 'USD ', ' 105306.94', '29473142', 'TD CASH', 'Sales', 'Unsettled Transactions', 'Unsettled']
По сути, я хочу выполнить логику, в которой текущие и следующие строки проверяются на основе соответствующих элементов.Таким образом, если currentRow [0] == nextRow [0] И currentRow [1] == nextRow [1], ТО суммируйте currentRow [2] и nextRow [2].
Если совпадение не найдено,просто верните строку следующим образом:
['000000000000012', 'AUD ', ' -1500000.0000']
['000000000000012', 'BRL ', ' 6070.5400']
['000000000000012', 'MXN ', ' 19524996.5400']
['000000000000012', 'USD ', ' 225435.56'] <=== this row is summed
Список уже отсортирован, так что, я думаю, это облегчает жизнь.Полученный результат можно добавить в список, но форматирование не требуется, поскольку я всегда могу повторно применить его на исходящей стороне.Для смеха, это то, что я до сих пор имею:
prevAcct = None
prevCurr = None
finalSum = 0
for row in max:
if(str(row[0]).strip() == prevAcct and str(row[1]).strip() == prevCurr):
#print row[0]
#print row[1]
finalAcct = str(row[0]).strip()
finalSum = eval(row[1]) + eval(finalSum)
else:
print "Setting new account and currency!"
prevAcct = row[0]
prevCurr = row[1]
print "DEBUG: " + prevAcct + " and " + prevCurr
Я потратил немного времени на это, и это выводит меня из себя.Любая помощь будет принята с благодарностью.