你的问题本身有点不清楚。无论如何,我只是假设 -
>>> a = []
>>> a.append((1,2,3))
>>> a.append((7,2,4))
>>> a
[(1, 2, 3), (7, 2, 4)] # list of tuples
我假设你可能有兴趣获得列表中的所有元素的总和。如果这是问题,那么可以分两步解决。
1)第一步应该是扁平化列表。
2)然后添加列表中的所有元素。
>>> new_list = [y for x in a for y in x] # List comprehension used to flatten the list
[1, 2, 3, 7, 2, 4]
>>> sum(new_list)
19
一个衬垫
>>> sum([y for x in a for y in x])
19
另一个假设,如果你的问题是零下元组的每一个元素逐项列表,然后使用此:
>>> [tuple(map(lambda y: abs(item - y), x)) for x in a]
[(0, 1, 2), (6, 1, 3)] # map function always returns a list so i have used tuple function to convert it into tuple.
如果问题是别的东西,请详细说明。
PS:Python List comprehension比其他任何东西都好得多。
请注意'sum'是python中的一个内置函数,因此建议您使用不同的名称,就像我在答案中所做的一样。 – abyx 2009-11-17 06:59:46
我已将总数更改为总和,并且发生相同的错误。 – 2009-11-17 07:14:55
当然可以。下面的答案解释了真正的问题。我刚才说这是一个更好的做法,现在阴影'总和'功能:) – abyx 2009-11-17 07:23:24