在嵌套列表中使用remove
n=[['dgd','sd','gsg'],['fsdsdf','sds','sdf']]
>>> n.remove('sd')
如果我有一个嵌套列表,像上面那样,想要去掉'sd',我该怎么做呢?为什么这样做会出错呢?
2 个回答
1
当你有嵌套列表时,你需要先访问最外层的列表,才能找到里面的子列表,只有这样你才能对这些子列表进行操作。所以你需要像这样做:
n[0].remove('sd')
你现在的代码是想从一个只包含两个列表的列表中删除字符串:'sd'
,这两个列表分别是:['dgd','sd','gsg']
和 ['fsdsdf','sds','sdf']
。
如果 Python 能够自动处理嵌套结构,那么直接调用 n.remove('sd')
就可以在嵌套列表上工作,但实际上它并不这样做。
3
n[0].remove('sd')
或者
for i in n:
try:
i.remove('sd')
except ValueError:
pass