在嵌套列表中使用remove

1 投票
2 回答
2035 浏览
提问于 2025-04-15 23:50
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

撰写回答