網(wǎng)站首頁 編程語言 正文
python檢查值是否已經(jīng)存在于字典列表中
a = [
{'main_color': 'red', 'second_color':'blue'},
{'main_color': 'yellow', 'second_color':'green'},
{'main_color': 'yellow', 'second_color':'blue'},
]
#括號(hào)中的部分是一個(gè)生成器表達(dá)式,對(duì)于具有您要查找的鍵值對(duì)的每個(gè)字典都返回True,否則返回False。
if not any(d['main_color'] == 'red' for d in a):
# does not exist
#如果鍵也可能缺少上面的代碼可以給你一個(gè)KeyError。你可以通過使用get和提供一個(gè)默認(rèn)值來解決這個(gè)問題。
if not any(d.get('main_color', None) == 'red' for d in a):
# does not exist
字典列表中鍵值對(duì)value的存在判斷
話不多說,直接上干貨
1.1、最基礎(chǔ)的:for迭代與if判斷的結(jié)合
dict_list = [{"name": "小明",
"qq": "123",
"age": "18"},
{"name": "小美",
"qq": "110",
"age": "17"}]
name = input("請(qǐng)輸入查找的學(xué)生信息:")
for info in dict_list:
if name == info["name"]:
print("存在該學(xué)生")
break
else:
print("該學(xué)生不存在")
1.2、運(yùn)用dict.values()方法返回字典中所有值value來進(jìn)行判斷:
if name in info.values()
運(yùn)用filter()函數(shù)與lambda方法進(jìn)行迭代
result = filter(lambda x: x["name"] == name, dict_list)
result_list = list(result)
if len(result_list) > 0:
print("存在")
else:
print("不存在")'''
關(guān)于上述代碼的解釋:
1.lambda方法是定義匿名函數(shù)的方法,其函數(shù)名即為其返回值,于是此處直接采用lambda定義函數(shù)而不必專門調(diào)用函數(shù);
2.filter(function,iterable)函數(shù)有兩個(gè)參數(shù),分別是判斷函數(shù)和可迭代對(duì)象,返回一個(gè)迭代器對(duì)象。一般采用list()函數(shù)將其返回值轉(zhuǎn)換為列表形式。
在這個(gè)項(xiàng)目中,我將result_list函數(shù)輸出,有驚喜!
result = filter(lambda x: x["name"] == name, dict_list)
result_list = list(result)
print(result_list)
其輸出為包含小明的字典的列表,這一輸出,豈不使人浮想聯(lián)翩,代碼可操作性大大提高!
總結(jié)
原文鏈接:https://jenrey.blog.csdn.net/article/details/116698068
相關(guān)推薦
- 2022-08-26 一篇文章搞懂Go語言中的Context_Golang
- 2022-06-10 docker-compose部署Yapi的方法_docker
- 2022-10-28 Django執(zhí)行python?manage.py?makemigrations報(bào)錯(cuò)的解決方案分享_p
- 2023-06-05 Go實(shí)現(xiàn)共享庫(kù)的方法_Golang
- 2023-01-03 C++定義和初始化string對(duì)象實(shí)例詳解_C 語言
- 2022-12-21 C++?STL容器與函數(shù)謂詞示例分析講解_C 語言
- 2022-02-27 通用mapper的查詢,selectByPrimaryKey、select、selectByExam
- 2022-07-13 VMware安裝VMware Tools失敗/安裝不了,無網(wǎng)絡(luò)離線安裝
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支