在说了y=[示例]之后,我使用list.remove(y)python不';i don’我不记得我给y分配了什么

在说了y=[示例]之后,我使用list.remove(y)python不';i don’我不记得我给y分配了什么,python,Python,在while循环中,我将y指定给列表中的一个随机值 y=[随机选择(列表)] 之后,我需要从列表中删除y: 列表。删除(y) 但它给出:ValueError:列表。删除(x):x不在列表中。 如果我从列表中写一个单词而不是y,它显然是有效的 整个while循环是(这将返回随机选择的歌曲列表,所有歌曲都使用一次): y是一个包含一个元素的列表,其中包含要删除的内容: def playRandomized(songList): x = [] while len(songList)&g

在while循环中,我将y指定给列表中的一个随机值

y=[随机选择(列表)]

之后,我需要从列表中删除y:
列表。删除(y)
但它给出:ValueError:
列表。删除(x):x不在列表中
。 如果我从列表中写一个单词而不是y,它显然是有效的

整个while循环是(这将返回随机选择的歌曲列表,所有歌曲都使用一次):


y
是一个包含一个元素的列表,其中包含要删除的内容:

def playRandomized(songList):
    x = []
    while len(songList)>0:
        y = random.choice(songList)
        x.append(y)
        songList.remove(y)
    return x
由于您希望以随机顺序添加
歌曲列表
的每个元素,因此只需使用
shuffle

def playRandomized(songs):
    random.shuffle(songs)
    return songs

random.choice
返回列表项。因此,您可以像下面这样重构代码

item = random.choice(lst)
lst.remove(item)

变量
q
的作用是什么?为什么所有内容都包含在一个列表中?问题是y是一个列表而不是元素您的错误代码显示删除x而不是y
item = random.choice(lst)
lst.remove(item)