例如,如果我们有2D列表:
list1 = [['tom',67,'engineer',2],
['ron',42,'scientist',4],
['alie',56,'doctor',3],
['rambo',29,'lawyer',7]]
现在我必须删除第4列有奇数值的行。使用pop或其他东西在python3中有没有办法呢?
答案 0 :(得分:3)
从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]
答案 1 :(得分:0)
使用remove
的解决方案。这很容易理解你。
for value in list1[:]:
if value[3] % 2 != 0:
list1.remove(value)
<强>结果强>
[['tom', 67, 'engineer', 2], ['ron', 42, 'scientist', 4]]