如何从列表中删除某些内容? [重复]

问题描述 投票:-1回答:2

这个问题在这里已有答案:

我正在尝试写一个数独游戏。每次我使用数字时,我都需要从列表中删除它。

我已经尝试了.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"]

但是当一个人被随机选择时,什么也没发生。

python list
2个回答
0
投票

您正在选择随机字符串,打印它,然后选择另一个字符串并将其与“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)

-1
投票

在您的特定列表上执行.pop [1]的问题是列表中的项是字符串,而1是整数。因此,您必须执行.pop(“1”)才能从列表中删除“1”。

© www.soinside.com 2019 - 2024. All rights reserved.