【问题标题】:How to filter nusted list-object by value?如何按值过滤嵌套列表对象?
【发布时间】:2020-03-21 20:14:14
【问题描述】:

在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?

【问题讨论】:

  • 您的列表理解不输出显示的值

标签: python list filtering


【解决方案1】:

你可以使用列表推导:

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']

【讨论】:

    【解决方案2】:

    我认为将嵌套列表转换为 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])
    

    【讨论】:

      猜你喜欢
      • 2019-08-03
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 2023-01-30
      • 1970-01-01
      • 2022-01-10
      • 2023-02-11
      • 2021-05-09
      相关资源
      最近更新 更多