日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

使用python檢查值是否已經(jīng)存在于字典列表中_python

作者:Jenrey ? 更新時(shí)間: 2023-01-19 編程語言

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

欄目分類
最近更新