网络编程
位置:首页>> 网络编程>> Python编程>> 使用python检查值是否已经存在于字典列表中

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

作者:Jenrey  发布时间:2023-10-25 03:08:21 

标签:python,检查值,字典,列表

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 d 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",
             "age": "18"},
            {"name": "小美",
             "qq": "110",
             "age": "17"}]
name = input("请输入查找的学生信息:")

for info in dict_list:
   if name == info["name"]:
       print("存在该学生")
       break
else:
   print("该学生不存在")

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

if name in info.values()

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

result = filter(lambda x: x["name"] == 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_list = list(result)
print(result_list)

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

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

来源:https://jenrey.blog.csdn.net/article/details/116698068

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com