我有一份清单:
list = ['john','jeff','george','peter']
我想创建以下输出:
[
[('john','jeff'),('george','peter')],
[('john','george'),('jeff','peter')],
[('john','peter'),('jeff','george')],
[('george','peter'),('john','jeff')],
[('jeff','peter'),('john','george')],
[('jeff','george'),('john','peter')]
]
一般来说,我想创建2对2游戏的所有玩家组合。在一个输出行中,一个名称只能显示一次(一个玩家一次只能在一个团队中比赛)。游戏允许玩重赛,所以每对元组都应该重复,但顺序不同(元组的顺序不同,元组中的项目没有不同的顺序)。在
当列表有4个以上的元素时,例如5,输出应该是这样的:
list = ['john','jeff','george','peter','simon']
所以一场比赛总有4个队员。其他玩家只是等待,不参与特定的游戏。在
你可以这样做:
^{pr2}$m
是所有对的列表,res
将每个对与其补码相关联。所以输出是编辑:如果列表中有4个以上的元素,则可以这样做:
输出是
以下情况如何:
combinations
为我们提供了长度为2的所有对(我们将其转换为list
以便在迭代时不会耗尽它)。set(x).intersection(set(y))
查找x
和{打印:
^{pr2}$这应该能帮你做到:
回答:
^{pr2}$相关问题 更多 >
编程相关推荐