如何删除二维列表中某些特定列值的行?

2024-05-12 22:03:03 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,如果我们有二维列表:

list1 = [['tom',67,'engineer',2],
     ['ron',42,'scientist',4],
      ['alie',56,'doctor',3],
      ['rambo',29,'lawyer',7]]

现在我必须删除第4列有奇数值的行。在python3里有没有办法用pop或者别的什么东西?


Tags: 列表poppython3数值doctortom办法list1
2条回答

使用remove的解决方案。你很容易理解。

for value in list1[:]:
    if value[3] % 2 != 0:
        list1.remove(value)

结果

[['tom', 67, 'engineer', 2], ['ron', 42, 'scientist', 4]]

list1创建新列表的最简单方法。如果要替换它,可以将其分配给list1。您可以使用:

list2 = [v for v in list1 if v[3] % 2 == 0]

在您的示例中,list2获取以下值:

[['tom', 67, 'engineer', 2],
 ['ron', 42, 'scientist', 4]]

如果只想用新列表替换list1,可以直接执行以下操作:

list1 = [v for v in list1 if v[3] % 2 == 0]

如果需要保留对list1的引用,可以使用以下命令更改现有列表:

list1[:] = [v for v in list1 if v[3] % 2 == 0]

相关问题 更多 >