大きなリストがあり、その抜粋は次のようになります。
power = [
['1234-43211', [5, 6, -4, 11, 22]],
['1234-783411', [43, -5, 0, 0, -1]],
['1234-537611', [3, 0, -5, -6, 0]],
['1567-345411', [4, 6, 8, 3, 3]],
['1567-998711', [1, 2, 1, -4, 5]]
]
文字列の最初の数字は重要な数字であり、追加を分離したい数字です。つまり、各ステーション内の値を累積的に加算したい (そしてそれぞれの特異な累積加算を返したい) だけで、2 つの異なるステーションの値を加算することはありません。
私の目標は、このリストを反復処理し、ステーションの int 値を累積的に追加し、各追加を返し、リストで次のステーションが検出されたときに再び開始することです。
望ましい結果:
new = [
[48, 1, -4, 11, -21],
[ 51, 1, -9, 5, -21], '### End of '1234' ### '
[5, 8, 9, -1, 8], '### End of 1567 ###'
] or something similar to this
私は次のことを試しました:
for i in range(len(power)-1):
front_num_1 = power[i][0].split('-')[0]
front_num_2 = power[i+1][0].split('-')[0]
station = '%s' % (front_num_1)
j = power[i][1]
k = power[i+1][1]
if front_num_1 == front_num_2:
print [k + j for k, j in zip(j, k)]
elif front_num_1 != front_num_2:
print '#####################################
else:
print 'END'
ただし、この追加は累積的ではないため、使用できません。