Rumah  >  Soal Jawab  >  teks badan

Semak sama ada kunci yang diberikan sudah wujud dalam kamus

Saya ingin menguji sama ada kunci wujud dalam kamus sebelum mengemas kini nilainya. Saya menulis kod berikut:

if 'key1' in dict.keys():
  print "blah"
else:
  print "boo"

Saya rasa ini bukan cara terbaik untuk menyelesaikan tugasan ini. Adakah terdapat cara yang lebih baik untuk menguji kunci dalam kamus?

P粉489081732P粉489081732376 hari yang lalu783

membalas semua(2)saya akan balas

  • P粉674876385

    P粉6748763852023-10-09 00:56:30

    Guna teruskey in my_dict而不是key in my_dict.keys():

    if 'key1' in my_dict:
        print("blah")
    else:
        print("boo")

    Ini akan menjadi lebih pantas kerana ia menggunakan cincang O(1) kamus, dan bukannya melakukan carian linear O(n) senarai kunci.

    balas
    0
  • P粉914731066

    P粉9147310662023-10-09 00:33:49

    Adakah terdapat kunci dalam

    in 测试dict: < /p>

    d = {"key1": 10, "key2": 23}
    
    if "key1" in d:
        print("this will execute")
    
    if "nonexistent key" in d:
        print("this will not")

    Gunakan dict.get() untuk memberikan nilai lalai apabila kunci tidak wujud:

    d = {}
    
    for i in range(100):
        key = i % 10
        d[key] = d.get(key, 0) + 1

    Untuk memberikan nilai lalai bagi setiap kunci , gunakan dict.setdefault() pada setiap kerja:

    d = {}
    
    for i in range(100):
        d[i % 10] = d.setdefault(i % 10, 0) + 1

    ...atau lebih baik lagi, gunakan modul defaultdict< /a> 来自 collections:

    from collections import defaultdict
    
    d = defaultdict(int)
    
    for i in range(100):
        d[i % 10] += 1

    balas
    0
  • Batalbalas