Python удалить элемент из случайного списка после того, как его выбрали

python random

10454 просмотра

1 ответ

Как бы мне позволить позволить 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)

Я надеюсь, что это помогает, я пытаюсь сохранить свой настоящий проект в секрете = \ извините за неудобства

Забыл упомянуть в коде, после того, как красный будет выбран, который также должен быть удален

Автор: user2795843 Источник Размещён: 12.11.2019 09:14

Ответы (1)


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)
Автор: JadedTuna Размещён: 19.09.2013 05:23
Вопросы из категории :
32x32