Memperkenalkan kamus Python

Selesai

Variabel dalam Python dapat menyimpan berbagai jenis data. Sebelumnya, Anda mempelajari bahwa Anda dapat menyimpan string dan angka:

name = 'Earth'
moons = 1

Meskipun metode ini berfungsi untuk jumlah data yang lebih kecil, metode ini dapat menjadi semakin kompleks ketika Anda bekerja dengan data terkait. Bayangkan bahwa Anda ingin menyimpan informasi tentang bulan-bulan Bumi dan bulan-bulan Jupiter.

earth_name = 'Earth'
earth_moons = 1

jupiter_name = 'Jupiter'
jupiter_moons = 79

Perhatikan bagaimana kami menduplikasi variabel dengan awalan yang berbeda. Duplikasi ini bisa menjadi tidak berat. Karena Anda akan sering menemukan diri Anda bekerja dengan sekumpulan data terkait, seperti curah hujan rata-rata selama bulan yang berbeda di kota yang berbeda, menyimpan variabel tersebut karena nilai individual bukanlah pilihan yang layak. Sebagai gantinya, Anda dapat menggunakan kamus Python.

Kamus Python memungkinkan Anda bekerja dengan kumpulan data terkait. Kamus adalah kumpulan pasangan kunci/nilai. Anggap saja seperti sekelompok variabel di dalam kontainer, di mana kuncinya adalah nama variabel, dan nilainya adalah nilai yang disimpan di dalamnya.

Membuat kamus

Python menggunakan kurung kurawal ({ }) dan titik dua (:) untuk menunjukkan kamus. Anda dapat membuat kamus kosong dan menambahkan nilai nanti, atau mengisinya pada waktu pembuatan. Setiap kunci/nilai dipisahkan oleh titik dua, dan nama setiap kunci terkandung dalam tanda kutip sebagai string literal. Karena kuncinya adalah string literal, Anda dapat menggunakan nama apa pun yang sesuai untuk menggambarkan nilai.

Mari kita buat kamus untuk menyimpan nama planet Bumi, dan jumlah bulan yang dimiliki Bumi:

planet = {
    'name': 'Earth',
    'moons': 1
}

Anda memiliki dua kunci, 'name' dan 'moons'. Setiap kunci berulah dengan cara yang sama seperti variabel: mereka memiliki nama yang unik, dan mereka menyimpan nilai. Namun, variabel tersebut terkandung di dalam satu variabel yang lebih besar, bernama planet.

Seperti halnya variabel reguler, Anda perlu memastikan bahwa Anda menggunakan jenis data yang benar. Pada nilai moons dari 1 pada contoh sebelumnya, Anda tidak menyertakan tanda kutip di sekitar angka, karena Anda ingin menggunakan bilangan bulat. Jika Anda telah menggunakan '1', Python akan melihat variabel ini sebagai string, yang akan memengaruhi kemampuan Anda untuk melakukan perhitungan.

Tidak seperti variabel reguler, nama kunci tidak perlu mengikuti aturan penamaan standar untuk Python. Anda dapat menggunakan nama kunci agar lebih deskriptif dalam kode Anda.

Membaca nilai kamus

Anda dapat membaca nilai di dalam kamus. Objek kamus memiliki get metode yang dapat Anda gunakan untuk mengakses nilai dengan menggunakan kuncinya. Jika Anda ingin mencetak name, Anda bisa menggunakan kode berikut:

print(planet.get('name'))
Earth

Seperti yang mungkin Anda duga, mengakses nilai dalam kamus adalah operasi umum. Untungnya, ada jalan pintas. Anda juga dapat meneruskan kunci ke notasi kurung siku ([ ]). Metode ini menggunakan lebih sedikit kode daripada get, dan sebagian besar programmer menggunakan sintaks ini sebagai gantinya. Anda dapat menulis ulang contoh sebelumnya dengan menggunakan kode berikut:

# planet['name'] is identical to using planet.get('name')
print(planet['name'])
Earth

Meskipun perilaku get dan kurung siku ([ ]) umumnya sama untuk mengambil item, ada satu perbedaan utama. Jika kunci tidak tersedia, get mengembalikan None, dan [ ] memunculkan KeyError.

wibble = planet.get('wibble') # Returns None
wibble = planet['wibble'] # Throws KeyError

Mengubah nilai kamus

Anda juga dapat mengubah nilai di dalam objek kamus, dengan menggunakan metode update. Metode ini menerima kamus sebagai parameter, dan memperbarui nilai yang ada dengan yang baru yang Anda berikan. Jika Anda ingin mengubah name untuk planet kamus, Anda bisa menggunakan kode berikut, misalnya:

planet.update({'name': 'Makemake'})

# No output: name is now set to Makemake.

Mirip dengan menggunakan pintasan kurung siku ([ ]) untuk membaca nilai, Anda bisa menggunakan pintasan yang sama untuk mengubah nilai. Perbedaan utama dalam sintaks adalah Anda menggunakan = (terkadang disebut operator tugas) untuk memberikan nilai baru. Untuk menulis ulang contoh sebelumnya untuk mengubah nama, Anda bisa menggunakan kode berikut:

planet['name'] = 'Makemake'

# No output: name is now set to Makemake.

Keuntungan utama menggunakan update adalah kemampuan untuk mengubah banyak nilai dalam satu operasi. Dua contoh berikutnya secara logis sama, tetapi sintaksnya berbeda. Anda bebas menggunakan sintaks apa pun yang Anda rasa paling tepat. Sebagian besar pengembang memilih kurung siku untuk memperbarui nilai individual.

Contoh berikut melakukan pengeditan yang sama pada variabel planet kami, memperbarui nama dan bulan. Perhatikan bahwa dengan menggunakan update, Anda membuat satu panggilan ke fungsi tersebut, sedangkan menggunakan tanda kurung siku melibatkan dua panggilan.

Menggunakan pembaruan:

planet.update({
    'name': 'Jupiter',
    'moons': 79
})

Menggunakan tanda kurung siku:

planet['name'] = 'Jupiter'
planet['moons'] = 79

Menambahkan dan menghapus kunci

Anda tidak diharuskan membuat semua kunci saat menginisialisasi kamus. Bahkan, Anda tidak perlu membuat apa pun! Setiap kali Anda ingin membuat kunci baru, Anda menetapkannya seperti yang sudah ada.

Katakanlah Anda ingin memperbarui planet untuk memasukkan periode orbit dalam hari:

planet['orbital period'] = 4333

# planet dictionary now contains: {
#   name: 'jupiter'
#   moons: 79
#   orbital period: 4333
# }

Penting

Nama kunci, seperti yang lainnya di Python, peka huruf besar/kecil. Akibatnya, 'name' dan 'Name' dipandang sebagai dua kunci terpisah dalam kamus Python.

Untuk menghapus kunci, Anda menggunakan pop. pop mengembalikan nilai dan menghapus kunci dari kamus. Untuk menghapus orbital period, Anda dapat menggunakan kode berikut:

planet.pop('orbital period')

# planet dictionary now contains: {
#   name: 'jupiter'
#   moons: 79
# }

Jenis data kompleks

Kamus dapat menyimpan semua jenis nilai, termasuk kamus lainnya. Ini memungkinkan Anda untuk memodelkan data kompleks sesuai kebutuhan. Bayangkan perlu menyimpan diameter untuk planet, yang dapat diukur di sekitar khatulistiwa atau kutubnya. Anda dapat membuat kamus lain di dalam planet untuk menyimpan informasi ini:

# Add address
planet['diameter (km)'] = {
    'polar': 133709,
    'equatorial': 142984
}

# planet dictionary now contains: {
#   name: 'Jupiter'
#   moons: 79
#   diameter (km): {
#      polar: 133709
#      equatorial: 142984
#   }
# }

Untuk mengambil nilai dalam kamus berlapis, Anda menautkan kurung siku, atau memanggil ke get.

print(f'{planet["name"]} polar diameter: {planet["diameter (km)"]["polar"]}')
Jupiter polar diameter: 133709