gpt4 book ai didi

python - 使用列表中多个字典的条件从键中检索项目

转载 作者:太空宇宙 更新时间:2023-11-03 20:21:21 24 4
gpt4 key购买 nike

我正在尝试从字典列表中选择的字典中的键检索项目,其中字典的选择取决于该项目的值与字典中存在的多个其他键的值。

例如对于字典列表,d:

d = [{a:'2.1', z:'apple', aa:'banana'}, {a:'3.6', z:'cherry', aa:'peach'}, {a:'4.7', z:'apple', aa:'banana'}, {a:'1.6', z:'apple', aa:'orange'}]

我有兴趣根据 'a' 检索列表中 last 字典的项目,其中 'z':'apple' 'aa':'banana' 满足条件,即根据上面的 d[-2] 中的键 'a' 获取项目例子。

有一些简单的代码可以做到这一点吗?

我已经尝试过:

  1. Python: get a dict from a list based on something inside the dict - 但不确定如何扩展它以针对字典内多个键的项目为条件。

  2. Slicing a dictionary - 但不确定如何使用 Python 语法添加条件方面。

我希望解决方案涉及某种字典理解,但我对 Python 还比较陌生。

感谢任何帮助。

最佳答案

您可以使用list comprehension按条件过滤字典列表并从满意的案例中获取最后一个字典:

dicts = [{'a':'2.1', 'z':'apple', 'aa':'banana'}, {'a':'3.6', 'z':'cherry', 'aa':'peach'}, 
{'a':'4.7', 'z':'apple', 'aa':'banana'}, {'a':'1.6', 'z':'apple', 'aa':'orange'}]

filtered_list = [elem for elem in dicts if elem.get('z') == 'apple' and elem.get('aa') == 'banana']
if filtered_list:
result = filtered_list[-1]
else:
result = None
print("There's no satisfied dictionary.")
print(result)
# {'a': '4.7', 'z': 'apple', 'aa': 'banana'}
print(result['a'])
# 4.7

关于python - 使用列表中多个字典的条件从键中检索项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58145559/

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