Kamus Python (Dengan Contoh)

Dalam tutorial ini, anda akan mempelajari semua perkara mengenai kamus Python; bagaimana mereka dibuat, mengakses, menambah, membuang unsur daripadanya dan pelbagai kaedah terbina dalam.

Video: Kamus Python untuk Menyimpan Pasangan kunci / nilai

Kamus Python adalah koleksi item yang tidak tersusun. Setiap item kamus mempunyai key/valuepasangan.

Kamus dioptimumkan untuk mendapatkan nilai apabila kunci diketahui.

Membuat Kamus Python

Membuat kamus semudah meletakkan item di dalam pendakap kerinting yang ()dipisahkan dengan koma.

Item mempunyai keydan sepadan valueyang dinyatakan sebagai pasangan ( kunci: nilai ).

Walaupun nilainya boleh berupa jenis data apa pun dan dapat diulang, kunci mestilah jenis tidak berubah (rentetan, nombor atau tupel dengan elemen tidak berubah) dan mesti 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, kita juga dapat membuat kamus menggunakan fungsi terbina dalam dict().

Mengakses Elemen dari Kamus

Walaupun pengindeksan digunakan dengan jenis data lain untuk mengakses nilai, kamus menggunakan keys. Kunci boleh digunakan sama ada di dalam kurungan persegi ()atau dengan get()kaedahnya.

Sekiranya kita menggunakan tanda kurung persegi (), KeyErrordinaikkan sekiranya kunci tidak dijumpai di kamus. Sebaliknya, get()kaedah itu kembali Nonejika kunci tidak dijumpai.

 # 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'))

Pengeluaran

 Jack 26 None Traceback (panggilan terakhir terakhir): Fail "", baris 15, dalam cetakan (my_dict ('address')) KeyError: 'address'

Menukar dan Menambah elemen Kamus

Kamus boleh berubah. Kita boleh menambah item baru atau mengubah nilai item yang ada menggunakan operator penugasan.

Sekiranya kuncinya sudah ada, maka nilai yang ada akan dikemas kini. Sekiranya kunci tidak ada, pasangan ( kunci: nilai ) baru akan 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)

Pengeluaran

 ('name': 'Jack', 'age': 27) ('name': 'Jack', 'age': 27, 'address': 'Downtown')

Mengeluarkan unsur dari Kamus

Kita boleh membuang item tertentu dalam kamus dengan menggunakan pop()kaedah. Kaedah ini membuang item dengan yang disediakan keydan mengembalikan value.

The popitem()kaedah boleh digunakan untuk mengeluarkan dan kembali sembarangan (key, value)pasangan item daripada kamus. Semua barang boleh dikeluarkan sekaligus, menggunakan clear()kaedah.

Kita juga boleh menggunakan delkata kunci untuk membuang item individu atau keseluruhan 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)

Pengeluaran

 16 (1: 1, 2: 4, 3: 9, 5: 25) (5, 25) (1: 1, 2: 4, 3: 9) () Jejak balik (panggilan terakhir terakhir): Fail "", baris 30, dalam bentuk cetak (kotak) NameError: nama 'kotak' tidak ditentukan

Kaedah Kamus Python

Kaedah yang tersedia dengan kamus dibentangkan di bawah. Sebilangan daripadanya telah digunakan dalam contoh di atas.

Kaedah Penerangan
jelas () Membuang semua item dari kamus.
salinan() Mengembalikan salinan kamus yang cetek.
dari kunci (seq (, v)) Mengembalikan kamus baru dengan kunci dari seq dan nilai sama dengan v (lalai ke None).
dapatkan (kunci (, d)) Mengembalikan nilai kunci. Sekiranya kunci tidak ada, kembalikan d (lalai ke None).
barang () Kembalikan objek baru item kamus dalam (kunci, nilai) format.
kunci () Mengembalikan objek baru kunci kamus.
pop (kunci (, d)) Mengeluarkan item dengan kunci dan mengembalikan nilainya atau d jika kunci tidak dijumpai. Sekiranya d tidak disediakan dan kuncinya tidak dijumpai, ia akan dinaikkan KeyError.
popitem () Membuang dan mengembalikan item sewenang-wenangnya ( kunci, nilai ). Menaikkan KeyErrorsekiranya kamus kosong.
setdefault (kunci (, d)) Mengembalikan nilai yang sepadan jika kunci ada di kamus Sekiranya tidak, masukkan kekunci dengan nilai d dan kembalikan d (lalai ke None).
kemas kini ((lain-lain)) Updates the dictionary with the key/value pairs from other, overwriting existing keys.
values() Returns a new object of the dictionary's values

Here are a few example use cases of these methods.

 # 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')

Python Dictionary Comprehension

Dictionary comprehension is an elegant and concise way to create a new dictionary from an iterable in Python.

Dictionary comprehension consists of an expression pair (key: value) followed by a for statement inside curly braces ().

Here is an example to make a dictionary with each item being a pair of a number and its square.

 # 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)

This code is equivalent to

 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)

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

Terbina dalam fungsi suka all(), any(), len(), cmp(), sorted(), dan lain-lain yang biasa digunakan dengan kamus untuk melaksanakan tugas yang berbeza.

Fungsi Penerangan
semua() Kembali Truejika semua kunci kamus Benar (atau jika kamus kosong).
mana-mana () Kembalikan Truejika ada kunci kamus yang benar. Sekiranya kamus kosong, kembali False.
len () Kembalikan panjang (bilangan item) dalam kamus.
cmp () Membandingkan item dari dua kamus. (Tidak terdapat di Python 3)
disusun () Kembalikan senarai kunci yang disusun baru dalam kamus.

Berikut adalah beberapa contoh yang menggunakan fungsi terbina dalam untuk berfungsi 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))

Pengeluaran

 Betul Salah 6 (0, 1, 3, 5, 7, 9)

Artikel menarik...