如何交叉检查随机数是否相同



我正在尝试用Python制作一个非常简单的扑克游戏。比如说,我通过使用randint函数生成了6个随机数。能不能对所有生成的数字进行交叉核对?代码示例可以是这样的:

dice1=randint(1,6)
dice2=randint(1,6)
dice3=randint(1,6)
dice4=randint(1,6)
dice5=randint(1,6)
dice6=randint(1,6)

我知道我可以做一些类似这样的事情来检查它们是否相等:

if dice1==dice2 && dice2==dice3 && dice3==dice4 && dice4==dice5 && dice5==dice6:
/////whatever function

问题是是否有可能检查我是否可以检查dice1==dice6在一个简短而简单的方法,同时也检查所有其他骰子的相似或不同。

使用骰子列表而不是6个变量,那么您可以:

dice = [randint(1,6) for _ in range(6)]
print(all(die == dice[0] for die in dice))

如果您只想检查dice1dice6是否相等,您可以使用表达式dice1 == dice6。如果你想检查所有的元素,你可以这样做:

dice = [dice1, dice2, dice3, ... dice6]
if all([dice[0] == d for d in dice]):
# Do something here

但是,这个方法不允许您检查哪个骰子不等于其他骰子。

最快的方法是创建一个集合,因为集合不允许重复。

if len(set([dice1, dice2, dice3, dice4, dice5, dice6])) != 6:  # there are duplicates

相关内容

最新更新