python - 如何通过与条件匹配的值来过滤列表中的字典?

标签 python python-3.x dictionary lambda filter

我的代码如下

result = [{"origin_location":'original', 'service':'amazon'},
          {'origin_location':'duplicate', 'service':'flipkart'}]

我想要的是结果

[{'origin_location':'duplicate', 'service':'flipkart'}]

即,仅获取服务为 Flipkart 的那些列表项。

我已经尝试了我的代码,如下

result = filter(lambda x: (line['service'] for line in result) == 'flipkart', result)
print ("Result= ", result)

但它只显示[]。如何更正我的代码以获得正确的输出? 提前致谢。

最佳答案

您可以使用列表理解来仅保留符合此条件的项目

>>> result = [i for i in result if i.get('service') == 'flipkart']
>>> result
[{'origin_location': 'duplicate', 'service': 'flipkart'}]

关于python - 如何通过与条件匹配的值来过滤列表中的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50271762/

相关文章:

python - Joblib 的 Loky 后端如何处理对全局变量的访问?

python - 带有 Django 的 Bootstrap 4 无法正确显示

python - 获取实际更新为不同值的列?

python - 如何从每个键有多个值的字典中写入 csv 文件?

python - 在函数python中定义一个函数好不好

python - 使用 ausent 值填充动态列表查询集并将其合并

python - 使用m1芯片在mac上安装python表

python - 属性(property)装饰师

iphone - obj-c 添加 c-struct 到字典

python - 2个Python字典如何变成1个?