Dapatkah Anda mencari nilai di kamus dengan python?

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 kamus

Mari pertama-tama deklarasikan kamus sederhana dengan

if (simpDict.key(6) != None):
    print("True")
else:
    print ("False")
2 kunci dan nilai string

simpDict = {
            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

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 berikut

print ( "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 5

Di 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 X

Perintah

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 baru

Sekarang, 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 nilai

Katakanlah kita ingin mencari jika daftar

print ( "Elephant" in simpDict.itervalues() )
print ( "Elephant" in simpDict.viewvalues() )
6 ada di kamus

print( ['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 itu

tof = 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 kamus

Singkatnya, 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

Bagaimana cara menemukan nilai tertentu dalam kamus?

Nilai dalam kamus Python dapat diakses dengan menempatkan kunci di dalam tanda kurung siku di sebelah kamus . Nilai dapat ditulis dengan menempatkan kunci di dalam tanda kurung siku di sebelah kamus dan menggunakan operator penugasan ( = ).

Bagaimana cara mengekstrak nilai tertentu dari kamus dengan Python?

Metode 1. Menggunakan Daftar. Langkah 1. Ubah kunci dan nilai kamus menjadi daftar. Langkah 2. Temukan indeks yang cocok dari daftar nilai. Langkah 3. Gunakan indeks untuk menemukan kunci yang sesuai dari daftar kunci.

Bisakah Anda mengindeks kamus berdasarkan nilai dengan Python?

Objek Kamus Python menyediakan kunci. fasilitas pengindeksan nilai . Perhatikan bahwa kamus tidak diurutkan - karena nilai dalam kamus diindeks oleh kunci, kamus tidak disimpan dalam urutan tertentu, tidak seperti daftar, di mana setiap item dapat ditemukan berdasarkan posisinya dalam daftar.