使用python檢查值是否已經(jīng)存在于字典列表中
python檢查值是否已經(jīng)存在于字典列表中
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()函數(shù)與lambda方法進行迭代
result = filter(lambda x: x["name"] == name, dict_list)
result_list = list(result)
if len(result_list) > 0:
print("存在")
else:
print("不存在")'''
關于上述代碼的解釋:
1.lambda方法是定義匿名函數(shù)的方法,其函數(shù)名即為其返回值,于是此處直接采用lambda定義函數(shù)而不必專門調用函數(shù);
2.filter(function,iterable)函數(shù)有兩個參數(shù),分別是判斷函數(shù)和可迭代對象,返回一個迭代器對象。一般采用list()函數(shù)將其返回值轉換為列表形式。
在這個項目中,我將result_list函數(shù)輸出,有驚喜!
result = filter(lambda x: x["name"] == name, dict_list) result_list = list(result) print(result_list)

其輸出為包含小明的字典的列表,這一輸出,豈不使人浮想聯(lián)翩,代碼可操作性大大提高!
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
利用Python通過獲取剪切板數(shù)據(jù)實現(xiàn)百度劃詞搜索功能
大家是不是嫌棄每次打開百度太麻煩?今天教大家利用Python通過獲取剪切板數(shù)據(jù)實現(xiàn)百度劃詞搜索功能,用程序直接打開網(wǎng)頁,需要的朋友可以參考下2021-06-06
如何用scheduler實現(xiàn)learning-rate學習率動態(tài)變化
這篇文章主要介紹了如何用scheduler實現(xiàn)learning-rate學習率動態(tài)變化問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
Python?ChineseCalendar包主要類和方法詳解
ChineseCalendar?是一個?Python?包,用于獲取中國傳統(tǒng)日歷信息。這個包提供了中國農(nóng)歷、二十四節(jié)氣、傳統(tǒng)節(jié)日、黃歷等信息,這篇文章主要介紹了Python?ChineseCalendar包簡介,需要的朋友可以參考下2023-03-03

