2

我有以下列表

Values=[ 0 , 1 , 2 ]

我的目标是制作以下内容

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

是否有用于组合的内置功能?

4

4 回答 4

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]
于 2013-04-30T10:10:22.920 回答
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]
于 2013-04-30T10:11:56.307 回答
1
import itertools
>>> values=[ 0 , 1 , 2 ]
>>> [ sum(list(i)) for i in itertools.combinations(values,2)]
[1, 2, 3]
>>> 
于 2013-04-30T10:15:50.033 回答
0

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

于 2013-04-30T10:12:00.103 回答