3 回答
TA贡献1790条经验 获得超9个赞
比其他答案更有效,因为它会在找到第一个匹配项后立即停止(并且还支持这些字典将具有更多键值对的情况):
TodoList = [{'id': 5}, {'id': 3}, {'id': 6}]
def AddItem(i):
if any(d['id'] == i for d in TodoList):
print('inside')
AddItem(5)
TA贡献1893条经验 获得超10个赞
您应该使用安全的字典方法 get()。
这是您可以解决此问题的方法...
TodoList=[{'id':5} ,{'id':3} ,{'id':6}];
def AddItem(id):
values = [i.get('id') for i in TodoList]
if id in values:
return True
return False
AddItem(2)
[OUT]: False
AddItem(3)
[Out]: True
TA贡献1829条经验 获得超6个赞
我们创建一个包含嵌套字典的所有值的列表并搜索它们。
TodoList=[{'id':5} ,{'id':3} ,{'id':6}];
def AddItem(id):
values_TodoList = [i['id'] for i in TodoList]
if id in values_TodoList:
print('inside');
else:
print('not inside')
AddItem(5)
inside
AddItem(10)
not inside
添加回答
举报