Python jika nilai tidak ditemukan dalam kamus

Kamus dengan Python adalah struktur data yang membantu menyimpan pasangan kunci-nilai. Sebelum mengakses nilai yang terkait dengan kunci, kita harus memeriksa apakah kunci tersebut ada di kamus atau tidak, jika tidak, kesalahan yang tidak diinginkan dapat ditemui saat menjalankan program kita

Lingkup Pasal

  • Pada artikel ini, kita akan membahas cara-cara berikut untuk memeriksa apakah kuncinya ada di kamus Python menggunakan berbagai metode dan operator
  • Kami juga akan melihat perbandingan kinerja untuk cara yang kami diskusikan untuk memeriksa apakah kuncinya ada di kamus Python

Perkenalan

Misalkan Anda memiliki kamus dengan Python (yang pada dasarnya adalah kumpulan pemetaan pasangan kunci-nilai) yang Anda gunakan untuk menyimpan nama siswa di kelas Anda menggunakan nomor gulungan mereka sebagai kunci

Misalnya

   : 
1601    : Aman Kumar
1602    : Roshni Jain
1603    : Utkarsh Rajput
.
.
.
1699    : Kritika Grover

Sekarang, bayangkan kekuatan siswa di kelas Anda sangat dinamis untuk bulan pertama sejak beberapa siswa meninggalkan mata pelajaran, dan beberapa mengambilnya. Ini karena fasilitas kursus yang santai di universitas Anda. Untuk tujuan kehadiran, Anda ingin memastikan bahwa nomor gulungan yang Anda cari ada di kamus, jika tidak, program Anda akan memberikan kesalahan. Bagaimana cara melakukannya?

Anda dapat melakukan tindakan ini (periksa apakah kuncinya ada di kamus dengan Python) dengan beberapa cara, yang semuanya kami jelaskan di bawah ini

Mengapa Kami Memeriksa Jika Kunci Ada di Kamus Python?

Jika Anda mencoba mengakses kunci dalam kamus yang tidak ada, program Python Anda akan melontarkan pengecualian KeyError. Oleh karena itu, selalu baik untuk memeriksa apakah kunci tersebut ada atau tidak sebelum mengaksesnya. Ini mencegah perilaku yang tidak diinginkan dalam program Python Anda

Metode 1 - Menggunakan pernyataan if-in / di Operator

Anda dapat memeriksa apakah kuncinya ada di kamus dengan Python menggunakan kata kunci Python in. Operator ini mengembalikan True jika kuncinya ada di kamus Python, jika tidak, ia mengembalikan False

Sintaksis

# dict is some dictionary
# tKey is the key to be searched

isKeyPresent = tKey in dict
_

Contoh Kode 1

dict = {1601:"Aman", 1602: "Roshni", 1603: "Utkarsh", 1699:"Kritika"}

print("1602 Present? ", 1602 in dict)
print("1600 Present? ", 1600 in dict)

Keluaran 1

1602 Present?  True
1600 Present?  False

Penjelasan 1. Karena 1602 adalah kunci yang valid dalam dict kamus, operator in mengembalikan nilai true. Karena 1600 tidak ada di dict, 1600 di dict dikembalikan salah


Tolong dicatat. Karena nilai balik operator in adalah boolean, ia dapat digunakan dalam pernyataan bersyarat dengan Python. Lihat contoh di bawah ini

Contoh Kode 2

dict = {1601:"Aman", 1602: "Roshni", 1603: "Utkarsh", 1699:"Kritika"}

if 1602 in dict:
    print("Name:", dict[1602])
else:
    print("No such student!")
_

Keluaran 2

Penjelasan 2. Sejak 1602 di dict mengembalikan true, cabang if dijalankan oleh program. Alternatifnya, jika kunci tidak ada dalam kamus yang diberikan, bagian else akan dieksekusi

Metode 2 - Menggunakan metode get()

Anda juga dapat menggunakan metode get() untuk memeriksa apakah kuncinya ada di kamus dengan Python. Jika kuncinya ada, metode get() akan mengembalikan nilai terkait dari kamus, jika tidak, metode ini akan mengembalikan Tidak Ada (secara default). Anda dapat menentukan nilai khusus untuk dikembalikan (jika kunci tidak ditemukan) sebagai parameter kedua opsional untuk metode get()

Sintaksis

# dict is some dictionary
# tKey is key to be checked

# syntax 1
retVal = dict.get(tKey)

# syntax 2
retVal = dict.get(tKey, customValue)

Silakan lihat contoh di bawah ini untuk memahami penggunaan sintaks dengan lebih baik

Contoh Kode 1

dict = {1601:"Aman", 1602: "Roshni", 1603: "Utkarsh", 1699:"Kritika"}

retVal = dict.get(1601)

if retVal is not None:
    print("Studnet Found! Name:", retVal)
else:
    print("No such student!")
_

Keluaran

Studnet Found! Name: Aman

Penjelasan. Karena kunci 1601 ada di dict kamus, retVal bukan Tidak ada, melainkan sama dengan nilai yang dipetakan ke 1601, yaitu, Aman


Mari kita lihat contoh kode lain di mana kita menggunakan parameter kedua untuk memeriksa apakah kuncinya ada di kamus dengan Python

Contoh Kode 2

dict = {1601:"Aman", 1602: "Roshni", 1603: "Utkarsh", 1699:"Kritika"}

keyNotFound = "Student Not Found!"
retVal = dict.get(1600, keyNotFound)

if retVal!=keyNotFound:
    print("Studnet Found! Name:", retVal)
else:
    print(retVal)
_

Keluaran

Penjelasan. Karena kunci 1600 tidak ada, nilai yang dikembalikan oleh metode get() sama dengan variabel keyNotFound, yang kami berikan sebagai parameter kedua ke metode get()

Metode 3 - Menggunakan metode keys()

Anda dapat memeriksa apakah ada kunci dalam kamus dengan Python menggunakan metode keys() dari kelas kamus. Metode keys() mengembalikan objek tampilan kunci (sesuatu yang mirip dengan koleksi) di mana Anda dapat mencari kunci yang diperlukan menggunakan operator in yang kita lihat sebelumnya

Sintaksis

# dict is some dictionary
# tKey is the key to find

allKeys = dict.keys()

if tKey in allKeys:
    print("Key Found!")
else:
    print("Key Not Found!")
_

Lihat contoh kode di bawah ini untuk pemahaman yang lebih baik tentang cara menggunakan metode keys() untuk memeriksa apakah ada kunci dalam kamus dengan Python

Contoh Kode 1

# dict is some dictionary
# tKey is the key to be searched

isKeyPresent = tKey in dict
_0

Keluaran

# dict is some dictionary
# tKey is the key to be searched

isKeyPresent = tKey in dict
_1

Penjelasan. Karena 1602 ada di kamus, itu juga akan ada di tampilan yang dikembalikan allKeys. Oleh karena itu, 1602 di allKeys bernilai True, dan cabang if dijalankan. Jika kuncinya tidak ada, cabang else akan dieksekusi

Metode 4 - Menggunakan Operator [] Dengan blok coba-kecuali

Anda dapat memeriksa apakah ada kunci dalam kamus dengan Python menggunakan [] (operator akses indeks) bersama dengan blok coba-kecuali

Jika Anda mencoba mengakses kunci yang tidak ada di kamus Python menggunakan operator [], program akan memunculkan pengecualian KeyError. Tapi kita bisa mengatur situasi itu menggunakan blok coba-kecuali

Sintaksis

# dict is some dictionary
# tKey is the key to be searched

isKeyPresent = tKey in dict
_2

Lihat contoh kode di bawah ini untuk memeriksa apakah kuncinya ada di kamus dengan Python menggunakan [] operator

Contoh Kode 1

# dict is some dictionary
# tKey is the key to be searched

isKeyPresent = tKey in dict
_3

Keluaran

# dict is some dictionary
# tKey is the key to be searched

isKeyPresent = tKey in dict
_4

Penjelasan. Karena kunci yang kami coba akses menggunakan operator [], yaitu 1601, ada di kamus, tidak ada pengecualian yang dilemparkan oleh program. Lihat contoh di bawah untuk kasus ketika kunci tidak ada


Contoh Kode 2

# dict is some dictionary
# tKey is the key to be searched

isKeyPresent = tKey in dict
_5

Keluaran

Penjelasan. Dalam program ini, kami mencoba mengakses kunci yang tidak ada di kamus. Oleh karena itu, program melempar pengecualian KeyError yang ditangkap oleh kecuali blok

Metode 5 - Menggunakan metode setdefault()

Anda dapat memeriksa apakah ada kunci dalam kamus dengan Python menggunakan metode setdefault() dari kelas kamus

Metode setdefault() mengembalikan nilai yang terkait dengan kunci yang dicari jika kunci itu ada. Jika kunci tidak ada, itu akan memasukkan kunci ke dalam kamus dengan nilai yang disediakan (yang, secara default, adalah Tidak Ada) dan mengembalikan nilai tersebut

Bagaimana cara mengatur nilai kamus jika tidak ada di Python?

Tambahkan item hanya jika kunci tidak ada di dict di Python (setdefault()) Di Python, Anda bisa menambahkan item baru ke dict kamus dengan dict_object[key . Dengan cara ini, jika kunci sudah ada, nilainya diperbarui (ditimpa) dengan nilai baru. . In this way, if the key already exists, the value is updated (overwritten) with the new value.

Bagaimana cara memeriksa apakah nilainya kosong di kamus Python?

Diberi kamus dengan daftar sebagai nilai, periksa apakah semua daftar kosong. Masukan. {“Gfg”. [], "Terbaik". []} Keluaran. Benar Penjelasan. Kedua daftar tidak memiliki elemen, karenanya Benar. Memasukkan. {“Gfg”. [], "Terbaik". [4]} Keluaran. Penjelasan Salah. "Terbaik" mengandung elemen, Karenanya Salah.

Bagaimana Anda memeriksa apakah nilai kamus tidak ada?

Metode #1. Menggunakan all() + bukan operator + nilai() .

Bagaimana Anda memeriksa apakah suatu nilai ada dalam kamus Python?

Memeriksa apakah ada kunci menggunakan metode get() . Jika kunci tidak ada, ia mengembalikan nilai default (jika diteruskan) atau mengembalikan Tidak Ada. Dengan menggunakan metode ini kita dapat memberikan kunci dan memeriksa apakah ada kunci di kamus python.