Python:从嵌套列表中删除单个元素

4

我有困难想要从嵌套列表中删除某些内容。

例如,我该如何从以下列表中删除“x”?

lst = [['x',6,5,4],[4,5,6]]

我尝试过del lst[0][0],但是得到了以下结果:

类型错误:'str'对象不支持删除操作。

我还尝试了使用for循环,但是得到了相同的错误:

for char in lst:
    del char[0]

两者对我来说都很好,正如我所期望的那样。请检查一下是否真的是你的代码。 - user395760
有趣的是,Python 的默认语法高亮器将 char 视为特殊内容并将其标记为蓝色。实际上,Python 中并没有名为 char 的内置函数,也不是关键字。 - Maciej Ziarko
@Maciej:语法高亮器不是针对Python特定的。 - Katriel
是的,我知道。这就是为什么我觉得它很有趣的原因。最有趣的事情是 - 它把 // 运算符当作注释处理。随着 Python3 的发布和越来越受欢迎,这个运算符将会被广泛使用。Stack Overflow 真的应该解决这个问题。更多信息请参见:http://meta.stackexchange.com/questions/81906/pythons-operator-treated-as-a-comment - Maciej Ziarko
3个回答

4

使用嵌套列表上的pop(i)函数。例如:

lst = [['x',6,5,4],[4,5,6]]
lst[0].pop(0)
print lst  #should print [[6, 5, 4], [4, 5, 6]]

完成。


del lst[0][0] 也可以正常工作。并且假设JG是正确的(我能想到的唯一合理的解释),两种方法在OP的实际代码中都会失败。 - user395760

3
你的代码运行良好。你确定lst被定义为[['x',6,5,4],[4,5,6]]吗?因为如果是这样,del lst [0] [0]会有效地删除'x'
也许你已经将lst定义为['x',6,5,4],在这种情况下,你确实会得到你提到的错误。

0

这个问题是关于编程的:我尝试删除的字符是"[",是否有区别?当我使用上面的列表时它可以正常工作,但是在我的列表中就不行。如果我输入lst[0][0]会返回"[",但是无法删除。 - Emily
Emily,请确保你的代码中所有内容都正确输入。有时候会发生奇怪的事情。 - Maciej Ziarko
你说得对,我的列表没有被正确创建。感谢你的帮助 :) - Emily

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接