使用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)
其输出为包含小明的字典的列表,这一输出,岂不使人浮想联翩,代码可操作性大大提高!
来源:https://jenrey.blog.csdn.net/article/details/116698068


猜你喜欢
- 在一篇文章 理解Python异步编程的基本原理 这篇文章中,我们讲到,如果在异步代码里面又包含了一段非常耗时的同步代码,异步代码就会被卡住。
- SQL Server导出表到EXCEL文件的存储过程:*--数据导出EXCEL导出表中的数据到Excel,包含字段名,文件为真正的Excel
- 1. Graphql是什么?GraphQL是Facebook 在2012年开发的,2015年开源,2016年下半年Facebook宣布可以在
- 最近在使用NFineBase框架+c#做一个系统的时候,在使用sql server 2012 连接数据库的时候 ,遇到几个问题。一.就是在本
- 本文实例讲述了Python迭代器与生成器基本用法。分享给大家供大家参考,具体如下:迭代器可以进行for循环的数据类型包括以下两种:1. 集合
- 单一数据读取方式:第一种:slice_input_producer()# 返回值可以直接通过 Session.run([images, la
- 1.在pycharm中新建project demo1 添加app01 点击create按钮完成新建2.在demo项目目录下新建目录stati
- 成功解决NLTK包的安装错误创建环境NLP_Pre_trainl环境conda create -n NLP_Pre_train python
- MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型。其区别在于,float,double等非标准类
- 本文实例讲述了PHP实现多文件上传的方法。分享给大家供大家参考。具体实现方法如下:<?phpdefine('ROOT'
- vue-cli npm解决vue项目中缺失core-js报错This dependency was not found:core-js/mo
- 问题: jsp中想要输出的中文被显示成“?” 解决方法 : 在eclipse-windows- preferences中 搜索jsp , E
- python pyinstaller pyqt4 打包 QWindows最近在做课设,用pyqt设计界面。然后用pyinstaller打包程
- 实例如下所示:#!/usr/bin/python# -*- coding:utf8 -*-from selenium import webd
- 层叠样式表(css)是Web设计的一种语言,CSS的下一代版本CSS3已经蓄势待发。你是否可望开始使用它们却又不知从何下手呢?虽然还有一些新
- 如下所示:# coding=utf-8import signalimport timedef set_timeout(num, callba
- 统一捕获接口报错弹窗提示报错重定向基础鉴权表单序列化实现的功能统一捕获接口报错 : 用的axios内置的 * 弹窗提示: 引入 E
- 前言综合前述的类、函数、matplotlib等,完成一个随机移动的过程(注意要确定移动的次数,比如10万次),每次行走都完全是随机的,没有明
- 本文实例为大家分享了python实现最大优先队列的具体代码,供大家参考,具体内容如下说明:为了增强可复用性,设计了两个类,Heap类和Pri
- 主要实现功能1、用户输入用户名,在用户名文件中查找对应的用户,若无对应用户名则打印输入错误2、用户名输入正确后,进行密码匹配。输入密码正确则