我有困难想要从嵌套列表中删除某些内容。
例如,我该如何从以下列表中删除“x”?
lst = [['x',6,5,4],[4,5,6]]
我尝试过del lst[0][0]
,但是得到了以下结果:
类型错误:'str'对象不支持删除操作。
我还尝试了使用for循环,但是得到了相同的错误:
for char in lst:
del char[0]
我有困难想要从嵌套列表中删除某些内容。
例如,我该如何从以下列表中删除“x”?
lst = [['x',6,5,4],[4,5,6]]
我尝试过del lst[0][0]
,但是得到了以下结果:
类型错误:'str'对象不支持删除操作。
我还尝试了使用for循环,但是得到了相同的错误:
for char in lst:
del char[0]
使用嵌套列表上的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的实际代码中都会失败。 - user395760lst
被定义为[['x',6,5,4],[4,5,6]]
吗?因为如果是这样,del lst [0] [0]
会有效地删除'x'
。lst
定义为['x',6,5,4]
,在这种情况下,你确实会得到你提到的错误。你也可以使用 "pop"。例如:
list = [['x',6,5,4],[4,5,6]]
list[0].pop(0)
会导致
list = [[6,5,4],[4,5,6]]
更多信息请参见此线程:如何在Python中按索引从列表中删除元素?
char
视为特殊内容并将其标记为蓝色。实际上,Python 中并没有名为char
的内置函数,也不是关键字。 - Maciej Ziarko//
运算符当作注释处理。随着 Python3 的发布和越来越受欢迎,这个运算符将会被广泛使用。Stack Overflow 真的应该解决这个问题。更多信息请参见:http://meta.stackexchange.com/questions/81906/pythons-operator-treated-as-a-comment - Maciej Ziarko