我有以下列表
Values=[ 0 , 1 , 2 ]
我的目标是制作以下内容
MySums=[1+2,0+2,0+1]
是否有用于组合的内置功能?
是的,你可以使用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]
>>> 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]
import itertools
>>> values=[ 0 , 1 , 2 ]
>>> [ sum(list(i)) for i in itertools.combinations(values,2)]
[1, 2, 3]
>>>
是的,看看itertools,更具体地说itertools.combinations()
。