我如何允许random.choice从列表中选择一个项目(一次,两次或三次),然后从列表中删除。
例如它可能是1-10,并且在数字1被选中之后,在程序重置之前不再允许选择1
这是一个用颜色和数字代替我的文字
的例子colors = ["red","blue","orange","green"]
numbers = ["1","2","3","4","5"]
designs = ["stripes","dots","plaid"]
random.choice (colors)
if colors == "red":
print ("red")
random.choice (numbers)
if numbers == "2":##Right here is where I want an item temporarily removed(stripes for example)
random.choice (design)
我希望有所帮助,我试图让我的实际项目保密:=抱歉给您带来不便
忘记在代码中提及,选择红色后也需要删除
答案 0 :(得分:2)
您可以使用random.choice
和list.remove
from random import choice as rchoice
mylist = range(10)
while mylist:
choice = rchoice(mylist)
mylist.remove(choice)
print choice
或者,如@Henry Keiter
所述,您可以使用random.shuffle
from random import shuffle
mylist = range(10)
shuffle(mylist)
while mylist:
print mylist.pop()
如果您之后仍需要改组列表,则可以执行以下操作:
...
shuffle(mylist)
mylist2 = mylist
while mylist2:
print mylist2.pop()
现在,您将获得一个空列表 mylist2 ,以及您的随机列表 mylist 。
修改强>
关于您发布的代码。您正在撰写random.choice(colors)
,但random.choice
的作用是什么?它选择随机答案和返回(!)它。所以你必须写
chosen_color = random.choice(colors)
if chosen_color == "red":
print "The color is red!"
colors.remove("red") ##Remove string from the list
chosen_number = random.choice(numbers)
if chosen_number == "2":
chosen_design = random.choice(design)