我有一个大名单,其中摘录的样子:累加,同时遍历列表
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