python - 如何根据特定列值从二维列表中删除行?

标签 python python-3.x multidimensional-array

例如,我们有这个二维列表:

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

现在我必须删除第 4 列具有奇数值的行。 python3 有没有办法使用 pop 或其他东西来做到这一点?

最佳答案

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]

关于python - 如何根据特定列值从二维列表中删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37904343/

相关文章:

python - 在从其他列(Spark)派生的数据框中添加新列

python - strip 命令不会删除字符串中的 'e'

python - 抓取网站并仅将可见文本导出到文本文档 Python 3 (Beautiful Soup)

python - 如何杀死超过 Linux 中 CPU 使用率和运行时限制的特定进程?

java - 计算二维数组中两个值之间的最大欧氏距离

python - Django 迁移到 MySql

python - Google App Engine 中的 CSS 映射问题

Python pickle 不适用于 UserLists/UserDicts

c - 多维数组的别名

python - Numpy apply_along_axis 不返回 ndarray 子类