Untuk sekadar memeriksa apakah ada kunci dalam kamus Python, Anda dapat menggunakan operator in
untuk mencari melalui kunci kamus seperti ini
pets = {'cats': 1, 'dogs': 2, 'fish': 3}
if 'dogs' in pets:
print['Dogs found!']
# Dogs found!
Pertimbangan kinerja
Kamus dapat menjadi struktur data yang nyaman untuk menghitung kemunculan item. Katakanlah misalnya Anda ingin menghitung jumlah kata dalam tubuh teks
Meskipun tampaknya intuitif untuk menggunakan pola if / else
seperti berikut untuk menghitung item
text = [] # a list of words
word_count = {}
for word in text:
if word in word_count
word_count[word] += 1
else:
word_word[count] = 1
_beberapa orang telah menunjukkan bahwa pola try / except
seperti di bawah ini dapat menghasilkan kinerja yang lebih baik. Namun, sebenarnya ada situasi berbeda di mana setiap pola lebih unggul
text = [] # a list of words.
word_count = {}
for word in text:
try:
word_count += 1
except:
word_count = 1
Jadi, kapan sebaiknya Anda menggunakan pola ________40______ alih-alih pola if / else
? . Artinya jika kurang dari 22% dari semua kata yang dihitung dalam badan teks adalah unik, pola try / except
akan lebih cepat
Pola try / except
lebih cepat ketika Anda memiliki sedikit pengecualian yang akan dimunculkan, dengan kata lain ada banyak kata atau kunci rangkap yang Anda hitung. Jadi cara ini akan cocok ketika Anda menghitung daftar yang berisi kumpulan kata yang sering diulang tanpa banyak kemungkinan kata lain yang mungkin hanya dihitung satu kali.
Namun, jika kata atau kunci yang Anda hitung sebagian besar unik, biaya untuk memunculkan pengecualian setiap kali membuat pola try / except
lebih lambat daripada pola if / else
Untuk perbandingan yang lebih praktis, biasanya 50% - 62% kata dalam artikel berita [diuji di The Economist, The Guardian, dan BBC News] bersifat unik, yang membuat pola if / else
lebih cepat untuk menghitung badan teks yang lebih beragam
Di bawah ini adalah beberapa hasil benchmark dari pengujian tersebut
# dictionary.txt [one word on each line]
if/else: 0.1533535360
try/except: 0.2706389330
total words: 370103
unique words: 370103
ratio: 1.00
# article.txt [article from The Economist]
if/else: 0.0002584480
try/catch: 0.0002763390
total words: 616
unique words: 374
ratio: 0.61
# balanced.txt [text with 22% unique words]
if/else: 0.0002434520
try/catch: 0.0002434670
total words: 895
unique words: 194
ratio: 0.22
Bagi yang tertarik, Anda dapat meninjau kode sumber yang digunakan untuk pengujian ini
Bergabunglah dengan Jaringan Pengembang yang Mampu
Jika Anda menyukai postingan ini, Anda mungkin tertarik dengan jaringan pengembang Able, tempat baru bagi pengembang untuk membuat blog dan mencari pekerjaan
Tutorial ini menunjukkan bagaimana Anda dapat memeriksa nilai jika ada dalam kamus Python. Di sini, kami akan membahas topik yang relevan, seperti mencari nilai yang diberikan oleh kunci, mencari nilai tertentu, dan mencari nilai yang berupa objek atau kumpulan
Untuk memulai, Anda ingin mencetak True
jika nilainya ada di kamus;
Gunakan get[]
_ dan Kunci untuk Memeriksa apakah Nilai Ada dalam Kamus
Kamus di Python memiliki fungsi bawaan
if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
0, yang mengembalikan nilai dari kunci yang diberikan. Pada saat yang sama, itu akan mengembalikan if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
_1 jika tidak ada. Anda dapat menggunakan fungsi ini sebagai syarat untuk menentukan ada tidaknya nilai dalam kamusMari pertama-tama deklarasikan kamus sederhana dengan
if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
2 kunci dan nilai stringsimpDict = {
1: "Ant",
2: "Bear",
3: "Cat",
4: "Dog",
5: "Elephant"
}
Jika Anda ingin mencari nilai menggunakan pasangan kuncinya, maka fungsi
if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
0 adalah caranya. Misalnya, Anda ingin mencari nilai apa pun dengan 6 sebagai kuncinya; if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
_Karena fungsi
if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
4 tidak memiliki kunci 6, blok kode ini akan menghasilkan False
Gunakan if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
_6 untuk Memeriksa apakah Nilai yang Ditentukan Ada dalam Kamus
if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
Berbeda dengan situasi mencari nilai tertentu, mencari kunci di dalam kamus sangatlah mudah;
Ini akan menampilkan True
sejak kunci 3 ada. Jika kami mengganti nomor dengan kunci yang tidak ada, maka itu akan menampilkan False
Di sisi lain, Anda dapat menggunakan fungsi
if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
6 jika Anda ingin mencari nilai tertentu di kamus. Perintah if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
6 akan mengembalikan daftar semua nilai dalam kamus. Menggunakan if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
_6, Anda dapat menggunakan kata kunci if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
7 ke kamus dan nilai yang ditentukan. Katakanlah Anda ingin tahu apakah nilai print [ "Elephant" in simpDict.values[] ]
4 ada di kamus, jalankan kode berikutprint [ "Elephant" in simpDict.values[] ]
Baris ini akan menampilkan True
karena kata
print [ "Elephant" in simpDict.values[] ]
4 ada di if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
4 pada tombol 5Di Python2. X, ada juga dua fungsi lain yang mirip dengan
if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
6, yaitu print [ "Elephant" in simpDict.values[] ]
9 dan print [ "Elephant" in simpDict.itervalues[] ]
print [ "Elephant" in simpDict.viewvalues[] ]
0; . Versi XPerintah
print [ "Elephant" in simpDict.values[] ]
_9 dan print [ "Elephant" in simpDict.itervalues[] ]
print [ "Elephant" in simpDict.viewvalues[] ]
0 akan melakukan tugas yang sama dengan perintah if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
6; print [ "Elephant" in simpDict.itervalues[] ]
print [ "Elephant" in simpDict.viewvalues[] ]
Keduanya akan mengembalikan output yang sama dengan fungsi
if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
6. Penting untuk dicatat bahwa redundansi mungkin adalah alasan utama mengapa fungsi ini tidak digunakan lagi dari versi Python yang lebih baruSekarang, bagaimana jika nilai kamus adalah struktur data seperti daftar atau objek?
Periksa apakah Nilai Ada dalam Kamus jika Nilainya Adalah Daftar
listDict = {1: ['a', 'b'],
2: ['b', 'c'],
3: ['c', 'd'],
4: ['d', 'e']}
Sekarang, kami memiliki kamus dengan
if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
_2 kunci dan daftar karakter sebagai nilaiKatakanlah kita ingin mencari jika daftar
print [ "Elephant" in simpDict.itervalues[] ]
print [ "Elephant" in simpDict.viewvalues[] ]
6 ada di kamusprint[ ['c', 'd'] in listDict.values[] ]
Output yang dihasilkan adalah True
;
Tetapi bagaimana jika Anda ingin memeriksa apakah nilai dalam daftar nilai ada di kamus?
Misalnya, Anda ingin memeriksa apakah karakter
print [ "Elephant" in simpDict.itervalues[] ]
print [ "Elephant" in simpDict.viewvalues[] ]
9 ada dalam nilai dalam daftar ini atau tidak. Inilah kode untuk dieksekusi untuk itutof = False
for value in listDict.values[]:
if ['e' in value]:
tof = True
break
print[tof]
Output akan dicetak True
karena
print [ "Elephant" in simpDict.itervalues[] ]
print [ "Elephant" in simpDict.viewvalues[] ]
9 ada di kamusSingkatnya, gunakan fungsi
if [simpDict.key[6] != None]:
print["True"]
else:
print ["False"]
_6 untuk mengulangi nilai dan bandingkan apakah nilai yang Anda cari ada dalam daftar nilai. Ini membantu ketika Anda ingin memeriksa apakah ada nilai yang ditentukan dalam kamus