python 过滤列表中包含某个值的数组

cuxqih21  于 2022-12-28  发布在  Python
关注(0)|答案(6)|浏览(138)

我有名单

combi_col = [[0,1,2][0,1],[0],[1,2],[0,2],[1,2,3],[2,3],[3,1]

我想筛选此列表,以便仅显示数组中仅包含0的列表
结果应仅保留列表中包含0的所有数组
此外,数组不应仅包含1个值。它应至少包含2个值
结果应如下所示

result = [[0,1,2][0,1],[0,2]]
gkl3eglg

gkl3eglg1#

你可以通过列表解析在一行中完成:

[x for x in combi_col if 0 in x and len(x) >= 2]
#[[0, 1, 2], [0, 1], [0, 2]]
ivqmmu1c

ivqmmu1c2#

你可以试试这样的方法:

combi_col = [[0,1,2],[0,1],[0],[1,2],[0,2],[1,2,3],[2,3],[3,1]]
result = []

for entry in combi_col:
    if 0 in entry and len(entry) >= 2:
        result.append(entry)
rjee0c15

rjee0c153#

您可以使用内置过滤器:

filtered = list(filter(lambda list_element: 0 in list_element and len(list_element)>1, combi_col))

第一个参数是用于筛选的函数,第二个参数是要筛选的集合。

wz3gfoph

wz3gfoph4#

来自NiiRexo的答案是正确的,但是您可以使用列表解析在一行中完成相同的操作:

result = [nested_list for nested_list in combi_col if len(nested_list)>1 and (0 in nested_list)]
8zzbczxx

8zzbczxx5#

列表= [[0,1,2],[0,1],[0],[1,2],[0,2],[1,2,3],[2,3],[3,1]]结果= []
对于列表中的i:如果i中为0且len(i)≥ 2:结果。附(i)

db2dz4w8

db2dz4w86#

要过滤列表并得到所需的结果,可以使用列表解析和in运算符来检查每个子列表中是否存在元素0,并使用len函数来检查子列表中是否有多个元素。
下面是一个示例,说明如何执行此操作:

result = [x for x in combi_col if 0 in x and len(x) > 1]

这将创建一个名为result的新列表,它只包含combi_col中满足以下两个条件的子列表:它们包含元素0并且它们具有多个元素。结果列表将为:

result = [[0,1,2][0,1],[0,2]]

相关问题