我有一個大名單,其中摘錄的樣子:累加,同時遍歷列表
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]]
]
字符串中的第一個數字是重要的,而且在我希望分出一個我的補充。即我只想累積地添加每個站內的值(並且返回每個單數累積加法),決不會添加來自兩個不同點的值。
我的目標是遍歷這個列表,並累積地添加一個站的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'
然而,這除了不具有累積性,因此沒有用。
請在將來使用pprint.pprint或手動格式化您的代碼。也請在將來添加'python'標籤。謝謝! – ninjagecko 2012-08-09 08:30:44
在我的愚見中,根據「預期結果」,你不清楚你想要做什麼。 *編輯*:我看到了,你想分割清單,然後做累計總和。 – ninjagecko 2012-08-09 08:33:18
我也不明白你的目標。而且我無法推斷'power'應該如何產生'new'。請更詳細地描述*你想成爲什麼樣的人。 – 2012-08-09 08:35:23