Saya memiliki kamus berikut di python:
d = {'1': 'one', '3': 'three', '2': 'two', '5': 'five', '4': 'four'}
Saya perlu cara untuk mengetahui apakah ada nilai seperti "satu" atau "dua" dalam kamus ini.
Misalnya, jika saya ingin tahu apakah indeks "1" ada, saya cukup mengetik:
"1" in d
Dan kemudian python akan memberi tahu saya apakah itu benar atau salah, namun saya perlu melakukan hal yang persis sama kecuali untuk menemukan apakah ada nilai.
python
dictionary
find
JimmyK
sumber
sumber
d
, penentuan waktu secara efektif tidak berarti. Dalam Python 3,dict.values()
adalah tampilan kamus, secara default, dandict.itervalues()
dandict.viewvalues()
hilang. Anda bisa menguji ulang ini (dengan kamus yang lebih besar) dan menggunakannyalist(d.values())
untuk mendapatkan perilaku Python 2, daniter(d.values())
untuk mendapatkandict.itervalues()
perilaku tersebut, tetapi karena kedua versi tersebut memerlukan pencarian dan panggilan global, keduanya akan lebih lambat. Keduanya melakukan pekerjaan ekstra yang tidak diperlukan.Kamu bisa memakai
untuk menguji apakah
"one"
ada di antara nilai-nilai kamus Anda.sumber
Kamus python memiliki fungsi (kunci)
Sebagai contoh,
Jika kunci Anda tidak ada, akan mengembalikan
none
nilai.Konten yang relevan dengan versi kurang dari 3.0 dan lebih besar dari 5.0. .
sumber
key:value
dan bukan kunci.Gunakan tampilan kamus:
sumber
Jenis yang berbeda untuk memeriksa nilai ada
Bagaimana jika daftar nilai
Bagaimana jika daftar nilai dengan nilai string
sumber
value in [... list comprehension over sequence ...]
, gunakanany(value in sequence ...)
, untuk menghindari membuat objek daftar yang tidak Anda gunakan untuk hal lain, dan melakukan hubungan arus pendek ketika nilai telah ditemukan.Dalam Python 3 Anda dapat menggunakan
values()
fungsi kamus. Ini mengembalikan objek tampilan nilai-nilai. Ini, pada gilirannya, dapat diteruskan keiter
fungsi yang mengembalikan objek iterator. Iterator dapat diperiksa menggunakanin
, seperti ini,Atau Anda dapat menggunakan objek tampilan secara langsung karena mirip dengan daftar
sumber
iter()
pada tampilan kamus;in
sudah akan menggunakan objek sebagai iterable (tipe tidak mengimplementasikan__contains__
metode khusus ). Satu-satunya perbedaan antara'one' in iter(d.values())
dan'one in d.values()
adalah bahwa Anda membuat Python melakukan pekerjaan ekstra (membayar biaya pencarian globaliter
).