Warning: Berikut ini adalah tutorial Python untuk pemula yang sengaja dibuat untuk dokumentasai penulis agar mempermudah dalam mempelajari hal baru.
Setelah kita mempelajari dasar / basic mengenai python dictionary pada article sebelumnya, kali ini kita akan belajar mengenai python dictionary bagian 2 yaitu Dictionary Keys vs. List Indices.
Mungkin diawal kita tidak menyadari bahwa interpreter menunjukkan error exception yang sama (KeyError
) ketika kita mengakses key
/ numeric index
yang tidak ada pada dictionary kita
.
>>> language_and_framework = dict(
... python='Django',
... javascript='vuejs',
... go='hugo',)
>>> language_and_framework
{'python': 'Django', 'javascript': 'vuejs', 'go': 'hugo', 'java': 'j2EE'}
>>> # Error 1 (KeyError: 'nodejs')
>>> language_and_framework['nodejs']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'nodejs'
>>> # Error 2 (KeyError: 1)
>>> language_and_framework[1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 1
Pada dasarnya, error yang ditunjukkan oleh interpreter adalah error yang sama.
KeyError: 1
, interpreter akan menganggap kita mencari index
ke [1]
yang mana index tersebut tidak ada pada dict()
yang telah kita buat.
Pada tutorial kali ini kita akan mencoba menggunakan immutable object sebagai Key
pada dictionary yang akan kita buat. Kita dapat menggunakan integer dalam index dictionary agar mempermudah kita untuk mencari value
di dalamnya.
Contoh :
>>> vocal = {
... 0: 'a',
... 1: 'i',
... 2: 'u',
... 3: 'e',
... 4: 'o'
... }
>>> vocal
{0: 'a', 1: 'i', 2: 'u', 3: 'e', 4: 'o'}
>>> # Mencari `value` melalui numerical index pada dict()
>>> vocal[0]
'a'
>>> vocal[2]
'u'
>>> vocal[4]
'o'
Dengan metode index
tersebut kita akan lebih mudah dalam mencari sebuah value
pada dictionary yang ada dan lebih efektif.
Pada table Study Case pertama kita membuat dict(language_and_framework)
dan mencoba mencari value
yang ada di dalamnya dengan metode index language_and_framework['nodejs']
dan language_and_framework[1]
. Akan tetapi muncul sebuah error KeyError
karena kita mencari sebuah value
yang tidak dimilki dict()
itu sendiri sehingga python mengartikannya kita mencari value
dengan metode numerical index
.
Dan pada table Study Case kedua kita telah membuat sebuah numerical index
dan kembali mengulang cara seperti pada table pertama, untuk mencari sebuah value
pada dict()
dan berhasil karena kita mendefinisikan angka tersebut menjadi sebuah index.
Apabila kita menggunakan dictionary lain dan membalik indexnya maka kita akan tetap menghasilkan value yang sama.
Contoh :
>>> # menggunakan index sebelumnya secara terbalik
>>> vocal = {
... 4:'o',
... 3:'e',
... 2:'u',
... 1:'i',
... 0:'a'
... }
>>> vocal
{4: 'o', 3: 'e', 2: 'u', 1: 'i', 0: 'a'}
>>> vocal[0]
'a'
>>> vocal[2]
'u'
Syntax dalam Python List dan Dictionary memang sekilas terlihat sama, tetapi kita tidak dapat menggunakannya pada keduanya (list() & dict()
).
Contoh :
>>> type(vocal)
<class 'dict'>
>>> vocal[-1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: -1
>>> vocal[:3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'slice'
>>> vocal.append('F')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'append'
Conclusion : Dengan begitu sebanyak apapun dictionary yang ada dan akan kita buat kita tidak perlu khawatir untuk mengaksesnya karena kita dapat menggunakan metode indexing pada dictionary tersebut.
Note :Tutorial ini dibuat hanya untuk dokumentasi semata oleh penulis agar mudah dalam mempelajari sesuatu hal yang baru berdasarkan pemahaman penulis!.