这个问题在这里已有答案:
我正在尝试写一个数独游戏。每次我使用数字时,我都需要从列表中删除它。
我已经尝试了.pop[1]
,但当数字为1时它什么也没做。
import random
rownum1 = ["1","2","3","4","5","6","7","8","9"]
print(random.choice(rownum1))
if random.choice(rownum1) == "1":
del rownum1[0]
print(rownum1)
如果随机选择一个,我希望输出为:
["2","3","4","5","6","7","8","9"]
但是当一个人被随机选择时,什么也没发生。
您正在选择随机字符串,打印它,然后选择另一个字符串并将其与“1”进行比较!
每次调用random.choice(rownum1)
时,都会得到一个新的随机字符串。执行所需操作的正确方法是将随机字符串存储在变量中:
import random
rownum1 = ["1","2","3","4","5","6","7","8","9"]
num = random.choice(rownum1) # <- store the value in a variable for later reuse
print(num)
if num == "1":
del rownum1[0]
print(rownum1)
在您的特定列表上执行.pop [1]的问题是列表中的项是字符串,而1是整数。因此,您必须执行.pop(“1”)才能从列表中删除“1”。