为了账号安全,请及时绑定邮箱和手机立即绑定

奥马哈扑克循环通过两个列表。如何获得所有可能的组合?

奥马哈扑克循环通过两个列表。如何获得所有可能的组合?

繁华开满天机 2022-09-13 09:53:19
我正在Python中创建一个奥马哈(应该适用于4张牌和5张牌奥马哈)扑克游戏。我有两个列表。包含已发给玩家的牌的对象列表。此列表包含 4 或 5 个对象。包含社区卡 ( 对象)。此列表包含 5 个卡对象。我已经编写了所有函数来检查玩家是否有皇家齐平,直冲等。这些函数需要一个新列表作为参数。此新列表必须是来自玩家卡列表中的 2 个对象和来自 的 3 个对象的组合。我必须检查所有可能的组合。我知道这可以用2来完成。但我真的不知道正确的方法来做到这一点,以便检查所有可能的组合。除此之外,我如何避免重复检查组合?playerCardListCardCardcommunityCardListCardCardCardCardscommunityCardListfor loopsfor loopCard
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

我会使用排列。


给所有卡一个数字,并使用排列库:


from itertools import permutations 


# Get all permutations of [1, 2, 3] and print them

perm = permutations([1, 2, 3])       

for i in list(perm): 

    print i 

输出:


(1, 2, 3)

(1, 3, 2)

(2, 1, 3)

(2, 3, 1)

(3, 1, 2)

(3, 2, 1)

我希望这是你找到解决方案的良好开端。干杯,保持健康


查看完整回答
反对 回复 2022-09-13
?
冉冉说

TA贡献1877条经验 获得超1个赞

您可以使用 。它需要一个列表,它返回另一个不是重复列表的列表。itertools.combinations


import itertools


print(*itertools.combinations([1,2,3], 2))

输出:


(1, 2) (1, 3) (2, 3)

如果你需要一些重复但笨拙的值,你也可以使用itertools.permutations


import itertools


print(*itertools.permutations([1,2,3], 2))

输出:


(1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) 


查看完整回答
反对 回复 2022-09-13
  • 2 回答
  • 0 关注
  • 58 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信