筛选数组以显示特定列中具有特定值的行

c00*_*ter 9 python list

假设我有一个多维列表l:

l = [['a', 1],['b', 2],['c', 3],['a', 4]]
Run Code Online (Sandbox Code Playgroud)

我想返回另一个列表,其中只包含第一个列表元素中包含'a'的行:

m = [['a', 1],['a', 4]]
Run Code Online (Sandbox Code Playgroud)

这样做有什么好方法?

Ale*_*lli 16

绝对是列表理解的一个案例:

m = [row for row in l if 'a' in row[0]]
Run Code Online (Sandbox Code Playgroud)

在这里,我从字面上看你的"在' 第一个元素' ",从而使用in运算符.如果你想把它限制为"有'一个' 作为第一个元素"(与你实际写的东西完全不同! - ),那么

m = [row for row in l if 'a' == row[0]]
Run Code Online (Sandbox Code Playgroud)

更喜欢它;-).