Dalam tutorial ini, Anda akan mempelajari segala sesuatu tentang kamus Python; bagaimana mereka dibuat, mengakses, menambahkan, menghapus elemen darinya dan berbagai metode bawaan.
Video: Kamus Python untuk Menyimpan Pasangan kunci / nilai
Kamus Python adalah kumpulan item yang tidak berurutan. Setiap item kamus memiliki key/value
pasangan.
Kamus dioptimalkan untuk mengambil nilai ketika kuncinya diketahui.
Membuat Kamus Python
Membuat kamus semudah menempatkan item di dalam ()
tanda kurung kurawal dipisahkan dengan koma.
Sebuah item memiliki a key
dan a yang sesuai value
yang diekspresikan sebagai pasangan ( key: value ).
Meskipun nilai dapat dari tipe data apa pun dan dapat diulang, kunci harus dari tipe yang tidak dapat diubah (string, angka atau tupel dengan elemen yang tidak dapat diubah) dan harus unik.
# 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 having each item as a pair my_dict = dict(((1,'apple'), (2,'ball')))
Seperti yang Anda lihat dari atas, kami juga dapat membuat kamus menggunakan dict()
fungsi bawaan.
Mengakses Elemen dari Kamus
Saat pengindeksan digunakan dengan tipe data lain untuk mengakses nilai, kamus menggunakan keys
. Kunci dapat digunakan baik di dalam tanda kurung siku ()
atau dengan get()
metode.
Jika kita menggunakan tanda kurung siku ()
, KeyError
dimunculkan jika kunci tidak ditemukan dalam kamus. Di sisi lain, get()
metode kembali None
jika kuncinya tidak ditemukan.
# 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 keys which doesn't exist throws error # Output None print(my_dict.get('address')) # KeyError print(my_dict('address'))
Keluaran
Jack 26 None Traceback (panggilan terakhir terakhir): File "", baris 15, dicetak (my_dict ('address')) KeyError: 'address'
Mengubah dan Menambahkan elemen Kamus
Kamus bisa berubah. Kita dapat menambahkan item baru atau mengubah nilai item yang sudah ada menggunakan operator penugasan.
Jika kunci sudah ada, nilai yang ada akan diperbarui. Jika kunci tidak ada, pasangan baru ( key: value ) ditambahkan ke kamus.
# 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)
Keluaran
('name': 'Jack', 'age': 27) ('name': 'Jack', 'age': 27, 'address': 'Downtown')
Menghapus elemen dari Kamus
Kami dapat menghapus item tertentu dalam kamus dengan menggunakan pop()
metode ini. Metode ini menghapus item dengan yang disediakan key
dan mengembalikan value
.
The popitem()
metode dapat digunakan untuk menghapus dan mengembalikan sewenang-wenang (key, value)
pasangan item dari kamus. Semua item dapat dihapus sekaligus, menggunakan clear()
metode ini.
Kami juga dapat menggunakan del
kata kunci untuk menghapus item individu atau seluruh kamus itu sendiri.
# 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)
Keluaran
16 (1: 1, 2: 4, 3: 9, 5: 25) (5, 25) (1: 1, 2: 4, 3: 9) () Traceback (panggilan terakhir terakhir): File "", baris 30, di cetak (kotak) NameError: nama 'kotak' tidak ditentukan
Metode Kamus Python
Metode yang tersedia dengan kamus ditabulasikan di bawah ini. Beberapa di antaranya telah digunakan dalam contoh di atas.
metode | Deskripsi |
---|---|
bersih() | Menghapus semua item dari kamus. |
salinan() | Mengembalikan salinan kamus yang dangkal. |
fromkeys (seq (, v)) | Mengembalikan kamus baru dengan kunci dari seq dan nilai sama dengan v (default ke None ). |
dapatkan (kunci (, d)) | Mengembalikan nilai kunci. Jika kuncinya tidak ada, mengembalikan d (default ke None ). |
item () | Kembalikan objek baru dari item kamus dalam format (key, value). |
kunci () | Mengembalikan objek baru dari kunci kamus. |
pop (kunci (, d)) | Menghapus item dengan kunci dan mengembalikan nilainya atau d jika kunci tidak ditemukan. Jika d tidak tersedia dan kuncinya tidak ditemukan, maka akan muncul KeyError . |
popitem () | Menghapus dan mengembalikan item arbitrer ( kunci, nilai ). Meningkat KeyError jika kamus kosong. |
setdefault (key (, d)) | Mengembalikan nilai terkait jika kuncinya ada di kamus. Jika tidak, masukkan kunci dengan nilai d dan mengembalikan d (default ke None ). |
perbarui ((lainnya)) | Memperbarui kamus dengan pasangan kunci / nilai dari yang lain, menimpa kunci yang ada. |
nilai () | Mengembalikan objek baru dari nilai kamus |
Berikut adalah beberapa contoh kasus penggunaan metode ini.
# 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())))
Keluaran
('Matematika': 0, 'Bahasa Inggris': 0, 'Sains': 0) ('Matematika', 0) ('Bahasa Inggris', 0) ('Sains', 0) ('Bahasa Inggris', 'Matematika', ' Ilmu')
Pemahaman Kamus Python
Pemahaman kamus adalah cara yang elegan dan ringkas untuk membuat kamus baru dari iterable dengan Python.
Pemahaman kamus terdiri dari pasangan ekspresi ( key: value ) diikuti dengan for
pernyataan di dalam kurung kurawal ()
.
Berikut adalah contoh untuk membuat kamus dengan setiap item menjadi pasangan angka dan kuadratnya.
# Dictionary Comprehension squares = (x: x*x for x in range(6)) print(squares)
Keluaran
(0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)
Kode ini setara dengan
squares = () for x in range(6): squares(x) = x*x print(squares)
Keluaran
(0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)
A dictionary comprehension can optionally contain more for or if statements.
An optional if
statement can filter out items to form the new dictionary.
Here are some examples to make a dictionary with only odd items.
# 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)
To learn more dictionary comprehensions, visit Python Dictionary Comprehension.
Other Dictionary Operations
Dictionary Membership Test
We can test if a key
is in a dictionary or not using the keyword in
. Notice that the membership test is only for the keys
and not for the values
.
# 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
Iterating Through a Dictionary
We can iterate through each key in a dictionary using a for
loop.
# 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
Dictionary Built-in Functions
Built-in fungsi seperti all()
, any()
, len()
, cmp()
, sorted()
, dll biasanya digunakan dengan kamus untuk melakukan tugas yang berbeda.
Fungsi | Deskripsi |
---|---|
semua() | Kembalikan True jika semua kunci kamus adalah True (atau jika kamus kosong). |
apa saja() | Kembalikan True jika ada kunci kamus yang benar. Jika kamus kosong, kembali False . |
len () | Kembalikan panjang (jumlah item) dalam kamus. |
cmp () | Membandingkan item dari dua kamus. (Tidak tersedia di Python 3) |
diurutkan () | Kembalikan daftar kunci baru yang diurutkan dalam kamus. |
Berikut beberapa contoh yang menggunakan fungsi bawaan untuk bekerja dengan kamus.
# 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))
Keluaran
Salah Benar 6 (0, 1, 3, 5, 7, 9)