在字典列表中查找键值

我正在尝试编写一个函数,一旦它收到一个数字,它就会通知用户它是否已经在列表中,如下所示:


TodoList=[{'id':5} ,{'id':3}  ,{'id':6}];

def AddItem(id):

     if id in TodoList:

          print('inside');

但是我不知道如何搜索它是否在字典列表中,我该怎么做?


皈依舞
浏览 242回答 3
3回答

富国沪深

比其他答案更有效,因为它会在找到第一个匹配项后立即停止(并且还支持这些字典将具有更多键值对的情况):TodoList = [{'id': 5}, {'id': 3}, {'id': 6}]def AddItem(i):    if any(d['id'] == i for d in TodoList):        print('inside')AddItem(5)

白猪掌柜的

您应该使用安全的字典方法 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 FalseAddItem(2)[OUT]: FalseAddItem(3)[Out]: True

肥皂起泡泡

我们创建一个包含嵌套字典的所有值的列表并搜索它们。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)    insideAddItem(10)    not inside
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python