gpt4 book ai didi

python - 按值过滤字典

转载 作者:行者123 更新时间:2023-12-01 05:31:33 26 4
gpt4 key购买 nike

我有一个字典列表,如果 2 个键的值中的 2 个都具有定义的字符串,我想对其进行过滤

例如,在下面的列表中过滤(A=BBB 和 D=EEE)...

[{A:BBB, C:DDD, D:EEE,...}, {A:BBB, C:DDD, D:ESS,...},{A:BBB, C:ASD, D:EEE,...},{C:ASD, D:EEE,...},...]

会输出

[{A:BBB, C:DDD, D:EEE,...},{A:BBB, C:ASD, D:EEE,...},...]

任何帮助将不胜感激!

最佳答案

试试这个,这是一个使用列表推导式的单行代码:

# input data
lst = [{'A':'BBB', 'C':'DDD', 'D':'EEE'},
{'A':'BBB', 'C':'DDD', 'D':'ESS'},
{'A':'BBB', 'C':'ASD', 'D':'EEE'},
{'C':'ASD', 'D':'EEE'}]

# list of filters
flt = [('A', 'BBB'), ('D', 'EEE')]

# a list comprehension + all() will do the trick
[x for x in lst if all(x.get(k, None) == v for k, v in flt)]
=> [{'A': 'BBB', 'C': 'DDD', 'D': 'EEE'}, {'A': 'BBB', 'C': 'ASD', 'D': 'EEE'}]

这种方法的好处是,您可以根据需要在过滤器中声明尽可能多的键/值对,无论如何它都会起作用。

关于python - 按值过滤字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20130885/

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