0

random.choice がリストから項目を (1 回、2 回、または 3 回) 選択してから、リストから削除できるようにするにはどうすればよいでしょうか。

たとえば、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)

私は実際のプロジェクトを秘密にしようとしています=\ご不便をおかけして申し訳ありません

コードで言及するのを忘れました。赤が選択された後、それも削除する必要があります

4

1 に答える 1

4

あなたが使用することができ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が得られます。

EDIT 投稿したコードについて。あなたは書いています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)
于 2013-09-19T17:23:50.307 に答える