开发者

使用python检查值是否已经存在于字典列表中

开发者 https://www.devze.com 2022-12-20 09:36 出处:网络 作者: Jenrey
目录python检查值是否已经存在于字典列表中字典列表中键值对value的存在判断话不多说,直接上干货运用filter()函数与lambda方法进行迭代总结python检查值是否已经存在于字典列表中
目录
  • python检查值是否已经存在于字典列表中
  • 字典列表中键值对value的存在判断
    • 话不多说,直接上干货
    • 运用filter()函数与lambda方法进行迭代
  • 总结

    python检查值是否已经存在于字典列表中

    a = [
        {'main_color': 'red', 'second_color':'blue'},
        {'main_color': 'yellow', 'second_color':'green'},
        {'main_color': 'yellow', 'second_color':'blue'},
    ]
     
    #括号中的部分是一个生成器表达式,对于具有您要查找的键值对的每个字典都返回True,否则返回False。
    if not any(d['main_color'] == 'red' for djavascript in a):
        # does not exist
     
    #如果键也可能缺少上面的代码可以给你一个KeyError。你可以通过使用get和提供一个默认值来解决这个问题。
    if not any(d.get('main_color', None) == 'red' for d in a):
        # does not exist

    字典列表中键值对value的存在判断

    话不多说,直接上干货

    1.1、最基础的:for迭代与if判断的结合

    dict_list = [{"name": "小明",
                  "qq": "123",
    js              "age": "18"},
                 {"name": "小美",
                  "qq": "110",
                  "age": "17"}]
    name = input("请输入查找的学生信息:")
    
    for info in dict_list:
        if name == info["namepython"]:
            print("存在该学生")
            break
    else:
        print("该学生不存在")
    

    1.2、运用dictQJrOgloZY.values()方法返回字典中所有值value来进行判断:

    if name in info.values()

    运用filter()函数与lambda方法进行迭代

    result = filter(lambda x: x["nwww.devze.comame"] == name, dict_list)
    result_list = list(result)
    if len(result_list) > 0:
        print("存在")
    else:
        print("不存在")'''
    

    关于上述代码的解释:

    1.lambda方法是定义匿名函数的方法,其函数名即为其返回值,于是此处直接采用lambda定义函数而不必专门调用函数;

    2.filter(function,iterable)函数有两个参数,分别是判断函数和可迭代对象,返回一个迭代器对象。一般采用list()函数将其返回值转换为列表形式。

    在这个项目中,我将result_list函数输出,有惊喜!

    result = filter(lambda x: x["name"] == name, dict_list)
    result开发者_JAVA学习_list = list(result)
    print(result_list)
    

    使用python检查值是否已经存在于字典列表中

    其输出为包含小明的字典的列表,这一输出,岂不使人浮想联翩,代码可操作性大大提高!

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消