Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk menetapkan nilai lalai menggunakan defaultdict dalam Python?

Bagaimana untuk menetapkan nilai lalai menggunakan defaultdict dalam Python?

WBOY
WBOYke hadapan
2023-04-26 17:07:091359semak imbas

Kata Pengantar

Apabila mencari nilai dalam kamus, jika kunci tidak wujud, ralat keyerror akan dikembalikan dan bukannya nilai lalai. anda boleh menggunakan defaultdictFungsi. Defaultdict ialah subkelas kelas dict terbina dalam Python Ia mempunyai fungsi yang sama seperti dict, tetapi ia mempunyai nilai lalai Jika nilai kunci tidak wujud, ia mengembalikan nilai lalai.

Sintaks

dict =defaultdict( factory_function)

defaultdict boleh menerima fungsi kilang sebagai parameter, di mana factory_function boleh menjadi senarai, set, str, dll., yang berfungsi apabila ket tidak wujud Apabila, kembalikan nilai lalai bagi fungsi kilang, seperti senarai yang sepadan dengan [], str sepadan dengan rentetan kosong, tetapkan sepadan dengan set(), dan int sepadan dengan 0.

Penggunaan biasa dict adalah seperti berikut:

l=['A','B','C','D']
di={}

for i in l:
    print(i) # 'A
    di[i]+=1 # KeyError: 'A'

print(di)

Gunakan defaultdict()

from collections import defaultdict
dict1 = defaultdict(int)
dict2 = defaultdict(set)
dict3 = defaultdict(str)
dict4 = defaultdict(list)
dict4[1] = 666
dict4[2] = 888
print(dict1[0]) # 0
print(dict2[0]) # set()
print(dict3[0]) # 
print(dict4[0]) # []
print(dict4[1]) # 666
print("*" * 30)
print(dict1) # defaultdict(<class &#39;int&#39;>, {0: 0})
print(dict2) # defaultdict(<class &#39;set&#39;>, {0: set()})
print(dict3) # defaultdict(<class &#39;str&#39;>, {0: &#39;&#39;})
print(dict4) # defaultdict(<class &#39;list&#39;>, {1: 666, 2: 888, 0: []})

setdefault( ) dan defaultdict Perbezaan antara ()

Kaedah dict.setdefault() mempunyai dua parameter, yang pertama ialah parameter, yang kedua ialah nilai lalai

lst = [&#39;A&#39;, &#39;B&#39;, &#39;C&#39;, &#39;D&#39;, &#39;e&#39;]
dic = {}
 
for i in lst:
    dic.setdefault(i, 0)
    dic[i] += 1
print(dic)# {&#39;A&#39;: 1, &#39;B&#39;: 1, &#39;C&#39;: 1, &#39;D&#39;: 1, &#39;e&#39;: 1}

setdefault( )

setdefault() ialah kaedah contoh kamus, menerima dua parameter penggunaannya serupa dengan kaedah get() kamus, tetapi ia lebih berkuasa daripada get(). kaedah. Kedua-duanya menetapkan nilai lalai untuk kunci kamus.

Perbezaan antara keduanya ialah: nilai lalai yang ditetapkan oleh kaedah get tidak akan mengubah kamus asal, manakala nilai lalai yang ditetapkan oleh setdefault akan mengubah nilai kamus asal.

Nota: Apabila menggunakan dict[key]=value, ralat akan dilaporkan jika kunci tidak wujud apabila menggunakan dict.get(key), jika kunci tidak wujud, nilai lalai nilai akan dikembalikan.

dic1 = {"A": "a", "B": "b"}
x = dic1.get("E", "e")
print(x) # e
print(dic1) # {&#39;A&#39;: &#39;a&#39;, &#39;B&#39;: &#39;b&#39;}
 
dic2 = {"C": "c", "D": "d"}
y = dic2.setdefault("E", &#39;e&#39;)
print(y) # e
print(dic2) # {&#39;C&#39;: &#39;c&#39;, &#39;D&#39;: &#39;d&#39;, &#39;E&#39;: &#39;e&#39;}

defaultdict()

defaultdict ialah fungsi kilang di bawah modul koleksi Ia digunakan untuk membina objek kamus dan menerima objek fungsi (boleh dipanggil) sebagai parameter. Apakah jenis yang dikembalikan oleh parameter, dan jenis apakah nilai yang sepadan dengan kunci.

from collections import defaultdict
 
lst = [("A", "1"), ("B", "1"), ("A", "2"), ("B", "2"), ("A", "3"), ("B", "3")]
dic = defaultdict(list)
print(dic)
for key, value in lst:
    dic[key].append(value)
print(dic)
print(type(dic))
for key, value in dic.items():
    print(key, value)

Bagaimana untuk menetapkan nilai lalai menggunakan defaultdict dalam Python?

Atas ialah kandungan terperinci Bagaimana untuk menetapkan nilai lalai menggunakan defaultdict dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam