gpt4 book ai didi

python - 过滤 python 中的条目列表

转载 作者:行者123 更新时间:2023-12-01 03:31:39 25 4
gpt4 key购买 nike

我需要过滤字符列表,即

    In [16]: list
Out[16]: [[1, 2, 3, 4, 5, 6, 7, 8], [2, 3, 6, 3, 6, 2, 7], [4, 5, 9, 3, 1, 8]]

grep 的字符是,g = [4,8]

    In [27]: a = filter(lambda x:g in x, list)

In [28]: a
Out[28]: []

但是我最终会这样。有人可以帮助我吗?

我需要输出为

   [[1, 2, 3, 4, 5, 6, 7, 8], [4, 5, 9, 3, 1, 8]]

最佳答案

你的问题是 x 中的 g 永远不是 True ,因为 g 是一个列表,并且永远不会在你的子列表之一中列表,例如([4,8,7] 中的[4,8] 返回False)。使用过滤器的正确方法:

l = [[1, 2, 3, 4, 5, 6, 7, 8], [2, 3, 6, 3, 6, 2, 7], [4, 5, 9, 3, 1, 8]]
g = [4,8]
filter(lambda x:all(c in x for c in g), l)
# [[1, 2, 3, 4, 5, 6, 7, 8], [4, 5, 9, 3, 1, 8]]

或列表理解:

[item for item in l if all(c in item for c in g)]
# [[1, 2, 3, 4, 5, 6, 7, 8], [4, 5, 9, 3, 1, 8]]

注意,不要将变量命名为 list,这会掩盖内置名称

关于python - 过滤 python 中的条目列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40891563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com