-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy pathDictionaryFix.tex
More file actions
215 lines (201 loc) · 13.6 KB
/
Copy pathDictionaryFix.tex
File metadata and controls
215 lines (201 loc) · 13.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
\section{Python Dictionary}
Dictionary Python adalah kumpulan pasangan kunci:nilai (selanjutnya disebut: key-value) yang tak berurutan. Dictionary Python ini sama halnya dengan hash-table atau array-asosiatif di pemrograman Perl.
Suatu kunci (key) pada Dictionary bersifat Unique (unik), yang artinya adalah satu kunci hanya memiliki satu nilai. Aturan penulisannya berupa key:value. Sebuah Dictionary ditandai dengan adanya kurung kurawal “{}”. Setiap pasangan key:value dipisah dengan tanda koma.
Setiap kunci dipisahkan dari nilainya oleh titik dua (:), item dipisahkan oleh koma, dan semuanya tertutup dalam kurung kurawal. Kamus kosong tanpa barang ditulis hanya dengan dua kurung kurawal, seperti ini: \$ \{ \$ \$ \} \$.
Kunci unik dalam kamus sementara nilai mungkin tidak. Nilai kamus bisa berupa tipe apa pun, namun kunci harus berupa tipe data yang tidak berubah seperti string, angka, atau tupel.
Dictionary menyediakan wadah yang sangat berguna yang memungkinkan kita mencari nilai menggunakan kunci\cite{oliphant2007python}. Dalam sebuah Dictionary tidak boleh ada dua key yang sama, maka memberikan nilai ke key yang sudah ada akan menghapus nilai yang lama. Untuk menambah key baru, Python memiliki syntax yang sama. Ini bisa menimbulkan kerancuan pada saat akan melakukan penambahan key baru, tapi ternyata hanya mengubah key yang sudah ada. Sebagai catatan, key yang baru terletak di bagian tengah bukan di belakang. Hal tersebut kebetulan saja, karena sebenarnya pada Dictionary memang tidak ada standar pengurutan yang berlaku.
\subsection{Accessing Values in Dictionary}
Untuk mengakses elemen kamus, Anda dapat menggunakan tanda kurung siku yang sudah dikenal bersama dengan kunci untuk mendapatkan nilainya. Berikut adalah contoh sederhana :
\begin{verbatim}
\$ \# \$!/usr/bin/python
dict = \$ \{ \$'Name': 'Zara', 'Age': 7, 'Class': 'First' \$ \} \$
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']
\end{verbatim}
Bila kode diatas dieksekusi, maka menghasilkan hasil sebagai berikut :
dict['Name']:~ Zara
dict['Age']:~ 7
Jika kita mencoba mengakses item data dengan sebuah kunci, yang bukan bagian dari kamus, kita mendapatkan error sebagai berikut :
\begin{verbatim}
\$ \# \$!/usr/bin/python
dict = \$ \{ \$'Name': 'Zara', 'Age': 7, 'Class': 'First' \$ \} \$
print "dict['Alice']: ", dict['Alice']
\end{verbatim}
Bila kode diatas dieksekusi, maka menghasilkan hasil sebagai berikut :
\begin{verbatim}
dict['Alice']:
Traceback (most recent call last):
~~ File "test.py", line 4, in <module>
~~~~~ \print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'
\end{verbatim}
\subsection{Updating Dictionary}
Anda dapat memperbarui kamus dengan menambahkan entri baru atau pasangan nilai kunci, memodifikasi entri yang ada, atau menghapus entri yang ada seperti yang ditunjukkan di bawah ini dalam contoh sederhana :
\begin{verbatim}
\$ \# \$!/usr/bin/python
dict = \$ \{ \$'Name': 'Zara', 'Age': 7, 'Class': 'First' \$ \} \$
dict['Age'] = 8; \$ \# \$ update existing entry
dict['School'] = "DPS School"; \$ \# \$ Add new entry
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
\end{verbatim}
Bila kode diatas dieksekusi, maka menghasilkan hasil sebagai berikut :
dict['Age']:~ 8
dict['School']:~ DPS School
\subsection{Delete Dictionary Elements}
Anda dapat menghapus elemen kamus individual atau menghapus keseluruhan isi kamus. Anda juga dapat menghapus seluruh kamus dalam satu operasi.
Untuk menghapus seluruh kamus secara eksplisit, cukup gunakan del statement. Berikut adalah contoh sederhana :
\begin{verbatim}
\$ \# \$!/usr/bin/python
dict = \$ \{ \$'Name': 'Zara', 'Age': 7, 'Class': 'First' \$ \} \$
del dict['Name']; \$ \# \$ remove entry with key 'Name'
dict.clear();~~~~ \$ \# \$ remove all entries in dict
del dict~;~~~~~~ \$ \# \$ delete entire dictionary
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
\end{verbatim}
Ini menghasilkan hasil berikut. Perhatikan bahwa pengecualian diajukan karena setelah kamus del dict tidak ada lagi -
dict['Age']:
Traceback (most recent call last):
~ File "test.py", line 8, in <module>
~~~ print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable
Note: del () metode dibahas di bagian selanjutnya.
\subsection{Properties of Dictionary Keys}
Nilai kamus tidak memiliki batasan. Mereka bisa menjadi objek Python yang sewenang-wenang, baik objek standar atau objek yang ditentukan pengguna. Namun, hal yang sama tidak berlaku untuk kunci.
Ada dua hal penting yang perlu diingat tentang kunci kamus –
Lebih dari satu entri per kunci tidak diperbolehkan. Yang berarti tidak ada kunci duplikat yang diperbolehkan. Ketika kunci duplikat ditemui selama penugasan, tugas terakhir akan menang. Sebagai contoh –
\begin{verbatim}
\$ \# \$!/usr/bin/python
dict = \$ \{ \$'Name': 'Zara', 'Age': 7, 'Name': 'Manni' \$ \} \$
print "dict['Name']: ", dict['Name']
\end{verbatim}
Bila kode diatas dieksekusi, maka menghasilkan hasil sebagai berikut :
dict['Name']:~ Manni
(b) Tombol harus tidak berubah. Yang berarti Anda bisa menggunakan string, angka atau tupel sebagai tombol kamus tapi sesuatu seperti ['key'] tidak diperbolehkan. Berikut adalah contoh sederhana:
\begin{verbatim}
\$ \# \$!/usr/bin/python
dict = \$ \{ \$['Name']: 'Zara', 'Age': 7 \$ \} \$
print "dict['Name']: ", dict['Name']
\end{verbatim}
Bila kode diatas dieksekusi, maka menghasilkan hasil sebagai berikut :
Traceback (most recent call last):
~~ File "test.py", line 3, in <module>
~~~~~ dict = \$ \{ \$['Name']: 'Zara', 'Age': 7 \$ \} \$;
TypeError: list objects are unhashable
Built-in Dictionary Functions \$ \& \$ Methods \$ - \$
Python includes the following dictionary functions \$ - \$
Python includes following dictionary methods \$ - \$
\subsection{Dictionaries Introductions}
Kami sudah mengenal daftar di bab sebelumnya. Di bab kusus Python online kami akan mempresentasikan kamus dan operator dan metode pada kamus. Program atau skrip Python tanpa daftar dan kamus hampir tidak dapat dibayangkan. Seperti daftar kamus yang bisa dengan mudah diubah, bisa menyusut dan berkembang ad libitum pada saat run time. Mereka menyusut dan tumbuh tanpa perlu membuat salinan. Kamus dapat dimuat dalam daftar dan sebaliknya. Tapi apa perbedaan antara daftar dan kamus? Daftar diurutkan dari objek, sedangkan kamus tidak berurutan. Tapi perbedaan utamanya adalah item dalam kamus diakses melalui kunci dan tidak melalui posisinya. Kamus adalah array asosiatif (juga dikenal sebagai hash). Kunci kamus mana pun dikaitkan (atau dipetakan) ke sebuah nilai. Nilai kamus bisa berupa tipe data Python. Jadi kamus adalah pasangan kunci-nilai tak berurutan.
Kamus tidak mendukung urutan operasi dari jenis data urutan seperti string, tupel dan daftar. Kamus termasuk tipe pemetaan built-in. Mereka adalah satu-satunya wakil semacam ini!
Di akhir bab ini, kami akan menunjukkan bagaimana kamus dapat diubah menjadi satu daftar, berisi (kunci, nilai) -tupel atau dua daftar, yaitu satu dengan kunci dan satu dengan nilainya. Transformasi ini bisa dilakukan secara terbalik juga.
\subsection{How to create a dictionary?}
Membuat kamus sama mudahnya dengan menempatkan item dalam kurung kurawal \$ \{ \$ \$ \} \$ dipisahkan dengan koma. Item memiliki kunci dan nilai yang sesuai dinyatakan sebagai pasangan, kunci: nilai. Sementara nilai dapat berupa tipe data apa pun dan dapat diulang, kunci harus terdiri dari tipe yang tidak dapat diubah (string, number atau tupel dengan elemen yang tidak berubah) dan harus unik.
\begin{verbatim}
\$ \# \$ 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')])
\end{verbatim}
Seperti yang bisa Anda lihat di atas, kita juga bisa membuat kamus menggunakan fungsi built-in dict ().
\subsection{How to access elements from a dictionary?}
Sementara pengindeksan digunakan dengan jenis wadah lain untuk mengakses nilai, kamus menggunakan tombol. Kunci dapat digunakan baik di dalam tanda kurung siku atau dengan metode get (). Perbedaan saat menggunakan get () adalah mengembalikan Elemen alih-alih KeyError, jika kuncinya tidak ditemukan.
\begin{verbatim}
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
\$ \# \$ my \$ \_ \$dict.get('address')
\$ \# \$ my \$ \_ \$dict['address']
\end{verbatim}
Saat menjalankan program, hasilnya adalah:
Jack
26
\subsection{How to change or add elements in a dictionary?}
Kamus bisa berubah-ubah. Kita bisa menambahkan item baru atau mengubah nilai barang yang ada menggunakan operator penugasan.
Jika kuncinya sudah ada, nilai akan diperbarui, jika ada kunci baru: pasangan nilai ditambahkan ke kamus.
Script.py
\begin{verbatim}
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).
\end{verbatim}
Saat menjalankan program, hasilnya adalah:
\$ \{ \$'name': 'Jack', 'age': 27 \$ \} \$
\$ \{ \$'name': 'Jack', 'age': 27, 'address': 'Downtown' \$ \} \$
\subsection{How to delete or remove elements from a dictionary?}
Kita bisa menghapus item tertentu dalam kamus dengan menggunakan metode pop (). Metode ini menghilangkan item dengan tombol yang disediakan dan mengembalikan nilainya.
Metodenya, popitem () dapat digunakan untuk menghapus dan mengembalikan item yang sewenang-wenang (key, value) membentuk kamus. Semua item dapat dihapus sekaligus dengan menggunakan metode clear ().
Kita juga bisa menggunakan kata kunci del untuk menghapus setiap item atau keseluruhan kamus itu sendiri.
Scrip.py
\begin{verbatim}
\$ \# \$ create a dictionary
squares~= \$ \{ \$1:1, 2:4, 3:9, 4:16, 5:25 \$ \} \$
\$ \# \$ remove a particular item
\$ \# \$ Output: 16
print(squares.pop(4))~
\$ \# \$ Output: \$ \{ \$1: 1, 2: 4, 3: 9, 5: 25 \$ \} \$
print(squares)
\$ \# \$ remove an arbitrary item
\$ \# \$ Output: (1, 1)
print(squares.popitem())
\$ \# \$ Output: \$ \{ \$2: 4, 3: 9, 5: 25 \$ \} \$
print(squares)
\$ \# \$ delete a particular item
del~squares[5]
\$ \# \$ Output: \$ \{ \$2: 4, 3: 9 \$ \} \$
print(squares)
\$ \# \$ remove all items
squares.clear()
\$ \# \$ Output: \$ \{ \$ \$ \} \$
print(squares)
\$ \# \$ delete the dictionary itself
del squares
\$ \# \$ Throws Error
\$ \# \$ print(squares)
\end{verbatim}
When you run the program, the output will be:
16
\$ \{ \$1: 1, 2: 4, 3: 9, 5: 25 \$ \} \$
(1, 1)
\$ \{ \$2: 4, 3: 9, 5: 25 \$ \} \$
\$ \{ \$2: 4, 3: 9 \$ \} \$
\$ \{ \$ \$ \} \$
Tipe data daftar memiliki beberapa metode lagi. Berikut adalah semua metode daftar objek:
list.append (x)
Tambahkan item ke bagian akhir daftar; setara dengan [len (a):] = [x].
list.extend (L)
Perluas daftar dengan menambahkan semua item dalam daftar yang diberikan; setara dengan [len (a):] = L.
list.insert (i, x)
Masukkan item pada posisi tertentu. Argumen pertama adalah indeks dari elemen yang sebelum dimasukkan, jadi a.insert (0, x) memasukkan di bagian depan daftar, dan a.insert (len (a), x) setara dengan a.append ( x).
list.remove (x)
Hapus item pertama dari daftar yang nilainya x. Ini adalah kesalahan jika tidak ada item seperti itu.
list.pop ([i])
Hapus item pada posisi yang diberikan dalam daftar, dan kembalikan. Jika tidak ada indeks yang ditentukan, a.pop () menghapus dan mengembalikan item terakhir dalam daftar. (Tanda kurung siku di sekitar i pada tanda tangan metode menunjukkan bahwa parameternya adalah opsional, bukankah Anda harus mengetikkan tanda kurung siku pada posisi itu. Anda akan sering melihat notasi ini di Referensi Perpustakaan Python.)
list.index (x)
Kembalikan indeks di daftar item pertama yang nilainya x. Ini adalah kesalahan jika tidak ada item seperti itu.
list.count (x)
Kembalikan berapa kali x muncul dalam daftar.
list.sort (cmp = None, key = None, reverse = False)
Urutkan item daftar di tempat (argumen dapat digunakan untuk kustomisasi sortir, lihat diurutkan () untuk penjelasan mereka).
list.reverse ()
Membalik unsur daftar, di tempat.
Nilai Dictionary tidak memiliki batasan. Mereka bisa menjadi objek Python yang sewenang-wenang, baik objek standar atau objek yang ditentukan pengguna. Namun, hal yang sama tidak berlaku untuk key.
Ada dua hal penting yang harus diingat tentang Dictionary Key.
Pertama lebih dari satu entri per key tidak diperbolehkan. Yang berarti tidak ada key duplikat yang diperbolehkan. Saat key duplikat ditemui selama penugasan, tugas terakhir akan menang.
Kedua key harus tidak berubah. Yang berarti Anda bisa menggunakan string, angka atau tuples sebagai tombol kamus tapi sesuatu seperti ['key'] tidak diperbolehkan.