随机数除了之前列在列表中的数字

Rac*_*oon 3 python random algorithm

我知道如何从例如7到14获取随机数,但也可以以某种方式获得从7到14的随机数,除了之前写的列表中的一些数字?

例:

Forbidden = [12, 13, 8, 7]
a = randint(7, 14) 
Run Code Online (Sandbox Code Playgroud)

a应该是随机数,而不是写入的数字Forbidden.

编辑:感谢您的建议,使用while循环或.choice实际上解决了我的问题.但最终@ user2357112是正确的,显然黑名单的想法一个初学者陷阱,改组甲板解决了我的问题.

use*_*ica 5

你知道一个真正的纸牌游戏如何阻止你绘制已经绘制的牌吗?它不涉及抽取卡的黑名单.有一个甲板,你洗了它.

在你的程序中做同样的事情.不是试图维持一张抽出的黑名单,而是在程序开始时洗牌,并从牌组中抽出牌:

import random

deck = some_list
random.shuffle(deck)

# when you want to draw a card
card = deck.pop()
Run Code Online (Sandbox Code Playgroud)

  • @IshanSrivastava:提问者特意试图对纸牌游戏进行编程:"我几乎是一个初学者,我正在尝试进行纸牌游戏." 这个黑名单的想法是一个常见的初学者陷阱,当人们想要防止绘制重复的卡片时,会出现很多卡片游戏问题. (2认同)