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 = 1Jadi, kapan sebaiknya Anda menggunakan pola try / except 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, sehingga 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.22Bagi 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
Dalam tutorial ini, Anda akan belajar cara menggunakan Python untuk memeriksa apakah ada kunci di kamus. Anda juga akan mempelajari cara memeriksa apakah suatu nilai ada di kamus. Anda akan mempelajari cara melakukan ini menggunakan operator >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 311, metode >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 312, fungsi >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 313, dan metode >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 314 dan >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 315
Mengetahui cara bekerja dengan kamus Python adalah keterampilan yang penting. Ini bisa sangat membantu saat bekerja dengan API web yang mengembalikan data JSON
Meskipun kami dapat dengan mudah mengindeks kamus, jika kunci tidak ada, >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 316 akan dilemparkan. Ini akan menyebabkan beberapa masalah yang signifikan dalam program Anda, kecuali kesalahan ini ditangani
Alternatif yang jauh lebih aman untuk menggunakan pengindeksan kamus, adalah dengan terlebih dahulu memeriksa apakah kunci yang diberikan ada di kamus. Mari kita mulai belajar
Jawaban Cepat. Gunakan >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 31_1 untuk melihat apakah ada kunci
Daftar isi
Apa itu Kamus Python?
Kamus dalam Python adalah salah satu struktur data bawaan utama. Mereka terdiri dari >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 318 pasangan yang memudahkan pencarian nilai item, jika Anda tahu kunci yang sesuai. Salah satu atribut unik kamus adalah bahwa kunci harus unik, tetapi nilainya dapat digandakan
Mari kita lihat bagaimana tampilan kamus dengan Python. Mereka dibuat menggunakan >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 319 kurung kurawal dan pasangan >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 318 dipisahkan dengan koma
Mari kita buat kamus bernama >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Jill']) KeyError: 'Jill'1, yang berisi usia orang yang berbeda
ages = { 'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38 }Salah satu cara yang sering diajarkan kepada Anda untuk mengakses nilai kamus adalah dengan menggunakan pengindeksan melalui tanda kurung siku >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Jill']) KeyError: 'Jill'2. Di bagian selanjutnya, Anda akan melihat cara kerja pengindeksan kamus dan mengapa itu tidak selalu merupakan opsi terbaik. Setelah itu, Anda akan mempelajari berbagai metode untuk memastikan bahwa kunci itu ada
Masalah dengan Pengindeksan Kamus Python
Mengindeks kamus adalah cara mudah untuk mendapatkan nilai kunci kamus – jika kunci yang diberikan ada di kamus. Mari kita lihat cara kerja pengindeksan kamus. Kami akan menggunakan pengindeksan kamus untuk mendapatkan nilai kunci >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Jill']) KeyError: 'Jill'3 dari kamus kami >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Jill']) KeyError: 'Jill'1
>>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 31_Kita dapat melihat di sini bahwa ini bekerja dengan baik. Karena itu, mari kita lihat apakah kita mencoba mendapatkan nilai untuk kunci >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Jill']) KeyError: 'Jill'5, yang tidak ada dalam kamus
>>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Jill']) KeyError: 'Jill'Kita dapat melihat di sini, bahwa jika kita mencoba mengakses nilai kamus untuk kunci yang tidak ada, >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 316 dilemparkan. Ini memiliki beberapa implikasi besar untuk kode Anda. Kecuali kesalahan ditangani secara eksplisit, program akan gagal. Salah satu cara untuk menghindari >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 316 adalah memastikan bahwa kunci benar-benar ada di kamus Python
Itulah tepatnya yang akan Anda pelajari di beberapa bagian berikutnya. Mari kita mulai
Gunakan Python untuk Memeriksa apakah Kunci Ada. Metode kunci Python
Kamus Python hadir dengan metode bawaan yang memungkinkan kita menghasilkan objek seperti daftar yang berisi semua kunci dalam kamus. Mudahnya, ini disebut metode >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 314
Mencetak >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Jill']) KeyError: 'Jill'_9 terlihat seperti ini
print(ages.keys()) # Returns: dict_keys(['Matt', 'Katie', 'Nik', 'Jack', 'Alison', 'Kevin'])Kita bisa melihat tampilannya sedikit seperti daftar. Kami sekarang dapat memeriksa apakah ada kunci di objek seperti daftar itu
Mari kita lihat bagaimana kita dapat menggunakan metode >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 31_4 untuk melihat apakah kunci ada di kamus. Mari gunakan metode ini untuk melihat apakah ada kunci
# Check if a key exists in a Python dictionary by checking all keys ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} some_key = 'James' if some_key in ages.keys(): print('Key exists') else: print('Key doesn\'t exist') # Returns Key doesn't existKita dapat melihat di sini bahwa kita memeriksa apakah kunci yang disediakan, print(ages.keys()) # Returns: dict_keys(['Matt', 'Katie', 'Nik', 'Jack', 'Alison', 'Kevin'])1, ada atau tidak dalam kunci kamus kita. Dalam hal ini, kuncinya tidak ada dan program dicetak print(ages.keys()) # Returns: dict_keys(['Matt', 'Katie', 'Nik', 'Jack', 'Alison', 'Kevin'])2
Di bagian selanjutnya, Anda akan mempelajari cara menyederhanakan ini lebih jauh
Gunakan Python untuk Memeriksa apakah Kunci Ada. Python di Operator
Metode di atas berfungsi dengan baik, tetapi kita dapat lebih menyederhanakan pemeriksaan apakah kunci yang diberikan ada dalam kamus Python. Kami benar-benar dapat menghilangkan metode >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 314 sepenuhnya, dan menggunakan operator >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 311 akan memindai semua kunci dalam kamus
Mari kita lihat bagaimana ini bekerja dalam praktiknya
ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} some_key = 'Nik' if some_key in ages: print('Key exists') else: print('Key doesn\'t exist') # Returns: Key existsKita dapat melihat di sini bahwa metode kita sebenarnya terlihat sangat mirip dengan yang di atas, tetapi kita dapat menghapus metode >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 314 seluruhnya. Ini sebenarnya membantu kode membaca sedikit lebih banyak bahasa sederhana
di bagian berikutnya, Anda akan mempelajari cara mengambil nilai kunci, meskipun kunci tidak ada
Lihat beberapa tutorial Python lainnya tentang datagy, termasuk panduan lengkap kami untuk menata gaya Panda dan ikhtisar komprehensif kami tentang Tabel Pivot di Panda
Menggunakan. dapatkan Metode untuk Memeriksa apakah Kunci Ada dalam Kamus Python
Bekerja dengan kamus di Python umumnya melibatkan mendapatkan nilai kunci – tidak hanya memeriksa apakah itu ada. Anda telah mempelajari sebelumnya bahwa hanya dengan mengindeks kamus akan memunculkan >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 316 jika kunci tidak ada. Bagaimana kita bisa melakukan ini dengan aman, tanpa merusak program?
Jawabannya adalah dengan menggunakan metode Python >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 312. Metode >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 312 hanya akan mengembalikan print(ages.keys()) # Returns: dict_keys(['Matt', 'Katie', 'Nik', 'Jack', 'Alison', 'Kevin'])9 jika kunci tidak ada. Mari kita coba ini
Kita dapat melihat di sini bahwa ketika metode >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 312 diterapkan untuk mengembalikan kunci yang ada, nilai kunci tersebut dikembalikan dengan benar. Ketika kunci tidak ada, program terus berjalan, tetapi mengembalikan print(ages.keys()) # Returns: dict_keys(['Matt', 'Katie', 'Nik', 'Jack', 'Alison', 'Kevin'])9
Apa yang sangat membantu tentang metode Python >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 31_2, adalah memungkinkan kita untuk mengembalikan nilai, bahkan jika kunci tidak ada
Katakanlah kami ingin program kami memberi tahu kami bahwa kunci tidak ada. Kita dapat meminta metode >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 31_2 untuk mengembalikan “Kunci tidak ada. ”
Mari kita lihat bagaimana kita bisa melakukan ini
ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} print(ages.get('Jill', "The key doesn't exist")) # Returns: "The key doesn't exist!"Metode >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 312 adalah cara yang bagus dan aman untuk melihat apakah ada kunci dalam kamus Python. Sekarang, mari belajar untuk melihat apakah nilai yang diberikan ada atau tidak dalam kamus Python
Periksa apakah Nilai Ada di Kamus Python Menggunakan. nilai()
Mirip dengan metode kamus Python >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 314, kamus memiliki metode >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 315 yang sesuai, yang mengembalikan objek seperti daftar untuk semua nilai dalam kamus
Mari kita lihat bagaimana kita bisa mengakses semua nilai kamus
ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} print(ages.values()) #Returns: dict_values([30, 29, 31, 43, 32, 38])Kita dapat menggunakan ini untuk melihat apakah ada nilai atau tidak. Katakanlah kami ingin tahu apakah usia 27 ada di kamus kami, kami dapat menulis yang berikut ini
ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} some_age = 27 if some_age in ages.values(): print('Age exists!') else: print("Age doesn't exist!") # Returns: Age doesn't exist!Sekarang, bagaimana jika kita ingin mengembalikan kunci atau kunci untuk nilai tertentu. Kita dapat melakukannya dengan aman menggunakan pemahaman daftar, yang akan memiliki tiga permutasi
- Jadilah daftar kosong, jika nilainya tidak ada,
- Miliki satu item, jika nilainya ada satu kali
- Memiliki lebih dari satu item, jika nilainya ada lebih dari satu kali
Mari gunakan kamus yang sedikit dimodifikasi untuk melihat ini beraksi
>>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 31_0Kami telah membuat daftar pemahaman yang menambahkan setiap kunci, jika nilai kunci tersebut sama dengan 43
Apa itu Pemahaman Daftar Python?
Kesimpulan
Di posting ini, Anda belajar cara memeriksa apakah kunci ada di kamus Python. Anda telah mempelajari cara melakukannya dengan metode >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 31_4, operator >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 311, dan metode >>> ages = {'Matt': 30, 'Katie': 29, 'Nik': 31, 'Jack': 43, 'Alison': 32, 'Kevin': 38} >>> print(ages['Nik']) 312. Anda juga belajar cara melihat apakah nilai yang diberikan ada di kamus Python dan cara mendapatkan kunci nilai itu