首页 > 解决方案 > 在Python中生成两个彼此不接近的不同数字

问题描述

我知道如何在特定范围内生成不同的随机数,但我想从彼此不接近的两个数字中选择一个随机数,并且它们之间存在我不想包含在生成过程中的数字. 例如:我不想在这个命令中生成一个。

play = (random.randint(0, 2)), (random.randint(0, 2))

标签: python

解决方案


如果要选择的值的数量很小,并且这些值是离散的(即不是“介于 0 到 1 之间或介于 2 到 3 之间”),最简单的方法是使用random.choice,它将选择提供的值中的任何一个,random.choice([0, 2])即不是“选择 0 到 2 之间的数字”,而是“选择 0 或 2”。

play = (random.choice([0, 2]), random.choice([0, 2]))

当然,您也可以提供两个以上的值,并且这些值不必是整数,因此您也可以使用这个变体,它可能更清晰,也可能不清晰:

play = random.choice([(0, 0), (0, 2), (2, 0), (2, 2)])

如果您还希望 的两个部分play是不同的数字,则可以相应地修改:

play = random.choice([(0, 2), (2, 0)])

或用于从给定总体random.sample中选择k不同的值:

play = random.sample([0, 2], 2)

推荐阅读