我正在尝试检查字典列表是否包含具有指定值的键 如果它确实包含具有该值的字典,则我要定位此字典,如果不包含,则要创建字典
这是我的字典列表
my_list = [
{"name": "home", "content": "home"}, {"name": "contact", "content": "contact"}
]
我想检查my_list
是否有一个包含键"name"
和值为"events"
的字典,该字典不存在,所以我需要将其添加到列表中如果可以的话,我想修改字典键"content"
if {"name": "events"} in my_list:
list_found = my_list[index_of_the_dictonary]
else:
my_list.append({
"name": "events"
"content": []
})
答案 0 :(得分:3)
您可以将else
添加到for
循环中以解决问题:
my_list = [
{"name": "home", "content": "home"},
{"name": "contact", "content": "contact"}
]
for x in my_list:
if x.get('name') == 'events':
print('Dictionary Found')
break
else:
my_list.append({'name': 'events', 'content': []})
print(my_list)
# [{'name': 'home', 'content': 'home'}, {'name': 'contact', 'content': 'contact'}, {'name': 'events', 'content': []}]
只有在正常执行else
循环(即不执行for
的情况下,才执行for
到break
循环。
答案 1 :(得分:2)
尝试一下:
for d in my_list:
if d.get('name') == 'events':
list_found = d # d is the dictonary you expected
break
else:
my_list.append({"name":"events", "content": []}) # Create it