Menguasai Kamus Python: Pembuatan, Manipulasi, dan Teknik Lanjutan
Kamus Python
Panduan komprehensif ini menjelaskan kamus Python—cara membuatnya, mengakses, menambah, menghapus elemen, dan memanfaatkan metode bawaan.
Video: Python Dictionaries to Store key/value Pairs
Kamus Python adalah kumpulan yang tidak berurutan dari pasangan key/value. Setiap entri mengasosiasikan kunci yang unik dan imutable dengan nilai yang dapat berupa tipe apa pun.
Membuat Kamus Python
Mendefinisikan kamus sederhana: tempatkan pasangan key/value yang dipisahkan koma di dalam kurung kurawal {}. Kunci harus bersifat imutable (string, angka, atau tuple dari elemen imutable) dan unik; nilai dapat berupa tipe data apa pun dan dapat berulang.
# empty dictionary
my_dict = {}
# dictionary with integer keys
my_dict = {1: 'apple', 2: 'ball'}
# dictionary with mixed keys
my_dict = {'name': 'John', 1: [2, 4, 3]}
# using dict()
my_dict = dict({1:'apple', 2:'ball'})
# from sequence of pairs
my_dict = dict([(1,'apple'), (2,'ball')])
Semua pendekatan di atas menciptakan struktur kamus yang sama.
Mengakses Elemen dari Kamus
Nilai kamus diambil melalui kunci mereka, baik dengan kurung siku [] atau metode get(). Menggunakan kurung siku menghasilkan KeyError jika kunci tidak ada; get() mengembalikan None secara default.
# get vs [] for retrieving elements
my_dict = {'name': 'Jack', 'age': 26}
# Output: Jack
print(my_dict['name'])
# Output: 26
print(my_dict.get('age'))
# Trying to access a missing key returns None
print(my_dict.get('address'))
# KeyError
print(my_dict['address'])
Output
Jack 26 None Traceback (most recent call last): File "<string>", line 15, in <module> print(my_dict['address']) KeyError: 'address'
Mengubah dan Menambahkan Elemen Kamus
Kamus bersifat mutable. Assignment ke kunci yang ada memperbarui nilainya; assignment ke kunci baru menambahkan entri segar.
# Changing and adding dictionary elements
my_dict = {'name': 'Jack', 'age': 26}
# update value
my_dict['age'] = 27
# Output: {'age': 27, 'name': 'Jack'}
print(my_dict)
# add item
my_dict['address'] = 'Downtown'
# Output: {'address': 'Downtown', 'age': 27, 'name': 'Jack'}
print(my_dict)
Output
{'name': 'Jack', 'age': 27} {'name': 'Jack', 'age': 27, 'address': 'Downtown'}
Menghapus Elemen dari Kamus
Gunakan pop() untuk menghapus kunci tertentu dan mengambil nilainya. popitem() menghapus pasangan sembarang, sementara clear() menghapus seluruh kamus. Kata kunci del dapat menghapus entri individual atau variabel keseluruhan.
# Removing elements from a dictionary
# create a dictionary
squares = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# remove a particular item, returns its value
# Output: 16
print(squares.pop(4))
# Output: {1: 1, 2: 4, 3: 9, 5: 25}
print(squares)
# remove an arbitrary item, return (key,value)
# Output: (5, 25)
print(squares.popitem())
# Output: {1: 1, 2: 4, 3: 9}
print(squares)
# remove all items
squares.clear()
# Output: {}
print(squares)
# delete the dictionary itself
del squares
# Throws Error
print(squares)
Output
16 {1: 1, 2: 4, 3: 9, 5: 25} (5, 25) {1: 1, 2: 4, 3: 9} {} Traceback (most recent call last): File "<string>", line 30, in <module> print(squares) NameError: name 'squares' is not defined
Metode Kamus Python
Tabel di bawah ini mencantumkan metode kamus umum dan tujuannya. Banyak di antaranya diilustrasikan dalam contoh yang mengikuti.
| Metode | Deskripsi |
|---|
| clear() | Menghapus semua item dari kamus. |
| copy() | Mengembalikan saluran dangkal dari kamus. |
| fromkeys(seq[, v]) | Membuat kamus baru dari seq dengan setiap kunci diatur ke v (default None). |
| get(key[,d]) | Mengembalikan nilai untuk key; jika tidak ada, mengembalikan d (default None). |
| items() | Mengembalikan tampilan pasangan (kunci, nilai) kamus. |
| keys() | Mengembalikan tampilan kunci kamus. |
| pop(key[,d]) | Menghapus key dan mengembalikan nilainya atau d; menghasilkan KeyError jika key hilang dan d tidak disediakan. |
| popitem() | Menghapus dan mengembalikan pasangan (kunci, nilai) sembarang; menghasilkan KeyError jika kamus kosong. |
| setdefault(key[,d]) | Mengembalikan nilai untuk key; jika tidak ada, menyisipkan key dengan nilai d (default None) dan mengembalikan d. |
| update([other]) | Menyisipkan atau memperbarui pasangan key/value dari other, menimpa kunci yang ada. |
| values() | Mengembalikan tampilan nilai kamus. |
Contoh penggunaan:
# Dictionary Methods
marks = {}.fromkeys(['Math', 'English', 'Science'], 0)
# Output: {'English': 0, 'Math': 0, 'Science': 0}
print(marks)
for item in marks.items():
print(item)
# Output: ['English', 'Math', 'Science']
print(list(sorted(marks.keys())))
Output
{'Math': 0, 'English': 0, 'Science': 0} ('Math', 0) ('English', 0) ('Science', 0) ['English', 'Math', 'Science']
Dictionary Comprehension Python
Dictionary comprehension menawarkan sintaks ringkas untuk membangun kamus dari iterable. Ini mengikuti pola {key: value for element in iterable}.
# Dictionary Comprehension
squares = {x: x*x for x in range(6)}
print(squares)
Output
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Versi imperatif setara:
squares = {}
for x in range(6):
squares[x] = x*x
print(squares)
Output
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Comprehension dapat mencakup beberapa loop dan filter if. Contoh: hanya kuadrat ganjil.
# Dictionary Comprehension with if conditional
odd_squares = {x: x*x for x in range(11) if x % 2 == 1}
print(odd_squares)
Output
{1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
Untuk lebih lanjut tentang dictionary comprehensions, lihat Python Dictionary Comprehension.
Operasi Kamus Lainnya
Pengujian Keanggotaan Kamus
Gunakan operator in untuk memeriksa apakah kunci ada; ini tidak memeriksa nilai.
# Membership Test for Dictionary Keys
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Output: True
print(1 in squares)
# Output: True
print(2 not in squares)
# membership tests for key only not value
# Output: False
print(49 in squares)
Output
True True False
Melakukan Iterasi Melalui Kamus
Iterasi melalui kunci secara langsung, lalu akses nilai.
# Iterating through a Dictionary
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in squares:
print(squares[i])
Output
1 9 25 49 81
Fungsi Bawaan Kamus
Fungsi standar seperti all(), any(), len(), dan sorted() sering diterapkan pada kamus.
| Fungsi | Deskripsi |
|---|
| all() | True jika setiap kunci mengevaluasi ke True (atau jika kamus kosong). |
| any() | True jika setiap kunci mengevaluasi ke True; False untuk kamus kosong. |
| len() | Jumlah pasangan key/value. |
| cmp() | Membandingkan dua kamus (dihapus di Python 3). |
| sorted() | Mengembalikan daftar kunci yang diurutkan. |
Contoh:
# Dictionary Built-in Functions
squares = {0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Output: False
print(all(squares))
# Output: True
print(any(squares))
# Output: 6
print(len(squares))
# Output: [0, 1, 3, 5, 7, 9]
print(sorted(squares))
Output
False True 6 [0, 1, 3, 5, 7, 9]