Python,一个在索引中组合的简单总和列表

时间:2013-04-30 10:08:43

标签: python list

我有以下列表

Values=[ 0 , 1 , 2 ]

我的目标是产生以下

MySums=[1+2,0+2,0+1]

组合有内置功能吗?

4 个答案:

答案 0 :(得分:5)

是的,您可以使用itertools.combinations

import itertools

In [6]: values = [0, 1, 2]

In [7]: list(itertools.combinations(values, 2))
Out[7]: [(0, 1), (0, 2), (1, 2)]

如果你想总结它们:

In [9]: list(sum(x) for x in itertools.combinations(values, 2))
Out[9]: [1, 2, 3]

答案 1 :(得分:2)

>>> Values=[ 0 , 1 , 2 ]

您可以使用itertools.combinations

>>> from itertools import combinations
>>> list(combinations(Values, r=2))
[(0, 1), (0, 2), (1, 2)]

我以为你可能想要这个

>>> [x + y for x, y in combinations(Values, r=2)]
[1, 2, 3]

但似乎你想要倒退:

>>> [x + y for x, y in combinations(reversed(Values), r=2)]
[3, 2, 1]

答案 2 :(得分:1)

import itertools
>>> values=[ 0 , 1 , 2 ]
>>> [ sum(list(i)) for i in itertools.combinations(values,2)]
[1, 2, 3]
>>> 

答案 3 :(得分:0)

是的,请查看itertools,更具体地说itertools.combinations()