如何按值过滤嵌套列表对象?

时间:2020-03-21 11:57:24

标签: python list filtering

在NumPy中,您可以按值过滤数组中的数组数据,例如:

L = [[str(j) + str (i) for i in range(5)] for j in range(5)] 
# [['00' '01' '02'] 
# ['10' '11' '12'] 
# ['20' '21' '22']]

要找出第三列中包含值“ 22”的行的第一列中的值,请执行以下操作:

print(A1[A1[:,2] == '22', 3]) 
#['20'] 

如何在普通的二维数组llist-type中进行这种过滤?

还是有必要转移到NumPy?

2 个答案:

答案 0 :(得分:0)

我认为不必将嵌套列表转换为numpy数组。

您可以按照下面的代码轻松执行要求的操作

L = [[2, 1, 0], [12, 10, 11], [21, 22, 20]]

L = [sorted(l) for l in L]

if(L[2][2]==22):
    print(L[2][0])

答案 1 :(得分:0)

您可以使用列表理解:

L = [[str(j) + str (i) for i in range(5)] for j in range(5)] 

[l[0] for l in L if l[2] == '22']

您要遍历按第3列(索引2)过滤的行,并保留第一列(索引0)中的元素

输出:

['20']