nan*_*ncy 8 python union tuples
import itertools
list_with_tuples=[(1,), (2,), (3,)]
pairs = itertools.combinations(list_with_tuples, 2)
for pair in pairs:
print(pair)
Run Code Online (Sandbox Code Playgroud)
所以对的结果是:
((1,),(2,)) ,
((1,),(3)) ,
((2,),(3,))
Run Code Online (Sandbox Code Playgroud)
我如何结合他们?工会结束后,我想做一本字典:
di={ (1,2): value1, (1,3): value2, (2,3): value3 }
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
wim*_*wim 10
在python中"联合"元组的一种方法是简单地添加它们:
>>> (1,) + (2,)
(1, 2)
Run Code Online (Sandbox Code Playgroud)
所以你可以修改你的例子来添加:
import itertools
list_with_tuples=[(1,), (2,), (3,)]
pairs = itertools.combinations(list_with_tuples, 2)
for left, right in pairs:
print(left + right)
Run Code Online (Sandbox Code Playgroud)
输出:
(1, 2)
(1, 3)
(2, 3)
Run Code Online (Sandbox Code Playgroud)
如果需要添加n元组,而不仅仅是其中的2个,则可以使用sum并指定空元组的初始值()作为第二个参数.
或者,正如Kevin在评论中提到的那样,你可以通过使用a的输出来构建一个新的元组,itertools.chain如果n很大则可能会更高效.