我试图弄清楚如果内部列表中的第一个元素满足特定条件,如何删除特定索引处的整个列表。下面我展示了一个我想做的事的例子,但是当我运行代码时,我得到的列表索引超出了Python的范围错误。如果list [i] [0]满足特定条件,我希望整个列表从整个列表中删除。
list = [[0, 0, 0], [1, 1, 1], [2, 2, 2]]
for i in range(0, len(list)):
if list[i][0] == 0:
del list[i]
return list
下面显示了当我在IDLE中运行示例代码时发生的情况的图片,第一次运行循环会出现错误,但是第二次运行代码(两次复制并粘贴)却没有,它符合我的要求。
从列表中间删除元素将使所有内容向下移动,从而破坏索引编制。您需要从最后删除元素:
for i in range(len(lst)-1, -1, -1):
if lst[i][0] == 0:
del lst[i]
或构建一个新列表并将其分配回该变量,这也将更加有效:
lst = [x for x in lst if x[0] != 0]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句