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

如何在python中子集列表列表

  •  1
  • msh855  · 技术社区  · 4 年前

    我有以下两个清单:

    list_dummy = [['a', 'b', 'c'], ['d', 'b', 'c'], ['a', 'b', 'd'], ['d', 'a', 'c'] ]
    must_have = ['a', 'b']
    

    list_dummy 有这些元素 a b

    list_sub = [['a', 'b', 'c'], ['a', 'b', 'd']]
    

    如何在Python中做到这一点,也请考虑 列表\u虚拟

    2 回复  |  直到 4 年前
        1
  •  2
  •   Albin Paul    4 年前

    您可以将它们转换为集合,然后检查它们的交点是否与必须设置的交点相同。

    list_dummy = [['a', 'b', 'c'], ['d', 'b', 'c'], ['a', 'b', 'd'], ['d', 'a', 'c'] ]
    must_have = ['a', 'b']
    must_have_set = set(must_have)
    print([x for x in list_dummy if set(x) & must_have_set == must_have_set])
    
        2
  •  0
  •   EL-AJI Oussama    4 年前

    您可以使用issubset

    list_dummy = [['a', 'b', 'c'], ['d', 'b', 'c'], ['a', 'b', 'd'], ['d', 'a', 'c']]
    must_have = ['a', 'b']
    list_sub = [i for i in list_dummy if set(must_have).issubset(i)]
    print(list_sub)