使用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'}, ] #括號中的部分是一個(gè)生成器表達(dá)式,對于具有您要查找的鍵值對的每個(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
字典列表中鍵值對value的存在判斷
話不多說,直接上干貨
1.1、最基礎(chǔ)的:for迭代與if判斷的結(jié)合
dict_list = [{"name": "小明", "qq": "123", "age": "18"}, {"name": "小美", "qq": "110", "age": "17"}] name = input("請輸入查找的學(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ù)和可迭代對象,返回一個(gè)迭代器對象。一般采用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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Python peewee 使用經(jīng)驗(yàn)
這篇文章主要介紹了淺談Python peewee 使用經(jīng)驗(yàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10PyQt5實(shí)現(xiàn)數(shù)據(jù)的增刪改查功能詳解
這篇文章主要為大家介紹了如何使用Python中的PyQt5模塊來實(shí)現(xiàn)數(shù)據(jù)的增、刪、改、查功能,文中示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-03-03python pygame實(shí)現(xiàn)2048游戲
這篇文章主要為大家詳細(xì)介紹了python pygame實(shí)現(xiàn)2048游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11pytorch中關(guān)于backward的幾個(gè)要點(diǎn)說明
這篇文章主要介紹了pytorch中關(guān)于backward的幾個(gè)要點(diǎn)說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Python實(shí)現(xiàn)一行代碼自動(dòng)繪制藝術(shù)畫
DiscoArt?是一個(gè)很牛的開源模塊,它能根據(jù)你給定的關(guān)鍵詞自動(dòng)繪畫。本文就將利用這一模塊實(shí)現(xiàn)一行代碼自動(dòng)繪制藝術(shù)畫,需要的可以參考一下2022-12-12