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
添加回答
舉報