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

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

繁华开满天机
浏览 59回答 2
2回答

qq_花开花谢_0

我会使用排列。给所有卡一个数字,并使用排列库:from itertools import permutations # Get all permutations of [1, 2, 3] and print themperm = 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)我希望这是你找到解决方案的良好开端。干杯,保持健康

冉冉说

您可以使用 。它需要一个列表,它返回另一个不是重复列表的列表。itertools.combinationsimport itertoolsprint(*itertools.combinations([1,2,3], 2))输出:(1, 2) (1, 3) (2, 3)如果你需要一些重复但笨拙的值,你也可以使用itertools.permutationsimport itertoolsprint(*itertools.permutations([1,2,3], 2))输出:(1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python