Dictionary Keys vs. List Indices

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.

Study Case

>>> 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.

Next Step >>> Membangun Sebuah Dictionary yang Efektif dan Efisien

Note :Tutorial ini dibuat hanya untuk dokumentasi semata oleh penulis agar mudah dalam mempelajari sesuatu hal yang baru berdasarkan pemahaman penulis!.


Tags: #Python, #dictionary, #Blog