Untuk menjawab pertanyaan " bagaimana saya bisa mengetahui jika indeks yang diberikan dalam dikt itu telah ditetapkan ke nilai yang tidak ada ", saya lebih suka ini:
try:
nonNone = my_dict[key] is not None
except KeyError:
nonNone = False
Ini sesuai dengan konsep EAFP yang sudah dipanggil (lebih mudah untuk meminta maaf daripada izin). Ini juga menghindari pencarian kunci duplikat dalam kamus karena itu akan key in my_dict and my_dict[key] is not Nonemenarik jika pencarian mahal.
Untuk masalah aktual yang Anda ajukan, yaitu menambah int jika ada, atau mengaturnya ke nilai default jika tidak, saya juga merekomendasikan
my_dict[key] = my_dict.get(key, default) + 1
seperti dalam jawaban Andrew Wilkinson.
Ada solusi ketiga jika Anda menyimpan objek yang dapat dimodifikasi di kamus Anda. Contoh umum untuk ini adalah multimap , di mana Anda menyimpan daftar elemen untuk kunci Anda. Dalam hal ini, Anda dapat menggunakan:
my_dict.setdefault(key, []).append(item)
Jika nilai untuk kunci tidak ada dalam kamus, metode setdefault akan mengaturnya ke parameter kedua setdefault. Berperilaku seperti standar my_dict [kunci], mengembalikan nilai untuk kunci (yang mungkin merupakan nilai yang baru ditetapkan).