我有以下列表
Values=[ 0 , 1 , 2 ]
我的目标是产生以下
MySums=[1+2,0+2,0+1]
组合有内置功能吗?
答案 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()
。