该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
在您的代码中,liss
是一个包含一个列表的列表,即 [[选出的17张牌]]
。因此,在 for
循环中,i
实际上是一个列表,而不是单个元素。当您尝试将 i
从 poke
列表中删除时,会出现 x not in the list
的错误,因为 poke
列表中并没有一个与 i
相同的列表对象。
为了解决这个问题,您可以使用 extend()
方法将 liss
列表中的元素直接添加到 poke
列表中,而不是将 liss
列表作为一个元素添加到 poke
列表中。修改后的代码如下所示:
import random
poke = []
a = ['♠', '♥', '♦', '♣']
b = ['A', "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]
for i in range(4):
for j in range(13):
poke.append(a[i] + b[j])
poke.append('JOKER')
poke.append('joker')
liss = []
liss.extend(random.sample(poke, 17))
print(liss)
for i in liss:
poke.remove(i)
print(poke)
在修改后的代码中,使用 extend()
方法将 liss
列表中的元素添加到 poke
列表中。然后,循环中的 i
就变成了一个单独的字符串元素,可以正确地从 poke
列表中删除。
希望这能帮助您解决问题。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢