为了账号安全,请及时绑定邮箱和手机立即绑定

在字典列表中查找键值

在字典列表中查找键值

皈依舞 2021-09-25 10:16:45
我正在尝试编写一个函数,一旦它收到一个数字,它就会通知用户它是否已经在列表中,如下所示:TodoList=[{'id':5} ,{'id':3}  ,{'id':6}];def AddItem(id):     if id in TodoList:          print('inside');但是我不知道如何搜索它是否在字典列表中,我该怎么做?
查看完整描述

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)


查看完整回答
反对 回复 2021-09-25
?
白猪掌柜的

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


查看完整回答
反对 回复 2021-09-25
?
肥皂起泡泡

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


查看完整回答
反对 回复 2021-09-25
  • 3 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信