我很难搞清楚如何从嵌套列表中删除某些东西。Python:从嵌套列表中删除单个元素
例如,我将如何从下面的列表中删除'x'?
lst = [['x',6,5,4],[4,5,6]]
我试过del lst[0][0]
,但我得到以下结果:
TypeError: 'str' object doesn't support item deletion.
我也试过一个for循环,但得到了同样的错误:
for char in lst:
del char[0]
我很难搞清楚如何从嵌套列表中删除某些东西。Python:从嵌套列表中删除单个元素
例如,我将如何从下面的列表中删除'x'?
lst = [['x',6,5,4],[4,5,6]]
我试过del lst[0][0]
,但我得到以下结果:
TypeError: 'str' object doesn't support item deletion.
我也试过一个for循环,但得到了同样的错误:
for char in lst:
del char[0]
你的代码工作正常。你确定lst
被定义为[['x',6,5,4],[4,5,6]]
?因为如果是这样,del lst[0][0]
有效删除'x'
。
也许你已经定义了lst
为['x',6,5,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的真实代码失败。 – delnan 2011-03-13 21:54:01
您还可以使用“流行”。例如,
list = [['x',6,5,4],[4,5,6]]
list[0].pop(0)
将导致
list = [[6,5,4],[4,5,6]]
看到这个线程更多:How to remove an element from a list by index in Python?
这两种工作只是为我好,因为我期望。检查这是否真的是你的代码。 – delnan 2011-03-13 21:36:16
有趣的是,默认的语法高亮器将'char'视为Python特有的东西,因为它是蓝色的。没有内置函数叫做char,既不是关键字。 – 2011-03-13 21:57:25
@Maciej:语法高亮器不是Python特有的。 – katrielalex 2011-03-13 23:52:48