代码之家  ›  专栏  ›  技术社区  ›  holastello

按子列表元素匹配筛选列表

  •  1
  • holastello  · 技术社区  · 7 年前

    我有以下双重嵌套列表:

    records = [[['Jack', 'male', 1],['Jack', 'male', 2],['Jack', 'male', 3]],[['Sally', 'female', 1],['Sally', 'female', 2],['Sally', 'female', 3]]]
    

    我想根据最内层列表的第二个元素(通过索引)等于1来筛选这个列表。结果应该是这样的:

    records
    [[['Jack', 'male', 1]],[['Sally', 'female', 1]]]
    

    我认为,我可能需要某种形式的带条件的嵌套列表理解,但我无法理解。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Ajax1234    7 年前

    您可以使用嵌套列表理解:

    records = [[['Jack', 'male', 1],['Jack', 'male', 2],['Jack', 'male', 3]],[['Sally', 'female', 1],['Sally', 'female', 2],['Sally', 'female', 3]]]
    final_records = [[i for i in b if i[-1] == 1] for b in records]
    

    输出:

    [[['Jack', 'male', 1]], [['Sally', 'female', 1]]]