python - 在Python中生成两个彼此不接近的不同数字
问题描述
我知道如何在特定范围内生成不同的随机数,但我想从彼此不接近的两个数字中选择一个随机数,并且它们之间存在我不想包含在生成过程中的数字. 例如:我不想在这个命令中生成一个。
play = (random.randint(0, 2)), (random.randint(0, 2))
解决方案
如果要选择的值的数量很小,并且这些值是离散的(即不是“介于 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)
推荐阅读
- powerbuilder - 如何处理检索参数类型不匹配错误?
- computer-vision - 为什么ssd和yolo没有roi pooling层?
- javascript - JavaScript - 使用 setInterval 更新 innerHTML 在 Chrome 中有时不可见
- typescript - 如何在 Typescript 中实现一个继承类的接口?
- python - Django ModelForm:如何在下拉字段中显示用户特定数据?
- php - 为什么在 laravel 5 中上传 csv 文件时出现未知错误?
- machine-learning - ValueError:检查输入时出错:预期 lstm_1_input 有 3 个维度,但得到了形状为 (378、20) 的数组
- javascript - 如何从openlayers中数组的连续点绘制线串
- sql - 将逐行表转换为逐列
- javascript - 对于时间序列中更高数量的数据,highchart 计算平均值