Cara menggunakan menggabungkan dictionary python

Skip to content

Deskripsi

Fungsi len() berfungsi untuk mengembalikan panjang (jumlah anggota) dari suatu objek.


Sintaks

Fungsi len() memiliki sintaks sebagai berikut:

len(s)

Parameter

Fungsi len() memiliki satu buah parameter, yaitu:

  • s – sequence (string, list, tuple, range) atau koleksi (dictionary, set, dan frozenset)

Nilai Kembalian

Fungsi len() mengembalikan jumlah item (anggota) dari sebuah objek.


Contoh

li = [] print(li, 'panjangnya =', len(li)) li = [1, 2, 3] print(li, 'panjangnya =', len(li)) testrange = range(1, 10) print('testrange range(1,10) panjangnya=', len(testrange)) st = 'contoh' print(st, 'panjangnya =', len(st))


Output

[] panjangnya = 0
[1, 2, 3] panjangnya = 3
testrange range(1,10) panjangnya= 9
contoh panjangnya = 6

Indonesian (Bahasa Indonesia) translation by Yosef Andreas (you can also view the original English article)

Dalam tutorial sebelumnya kita belajar tentang Python Dictionaries, dan melihat bahwa mereka dinyatakan sebagai set tak beraturan dengan pasangan key/value, dimana keys digunakan untuk mengakses item yang berlawanan posisi, contohnya seperti dalam sebuah daftar.

Dalam tip singkat ini, saya akan menunjukkan bagaimana menggabungkan dua dictionaries bersama-sama.

Metode Update()

Mari katakan kita memiliki dua dictionaries berikut:

dict1 = {'bookA': 1, 'bookB': 2, 'bookC': 3}
dict2 = {'bookC': 2, 'bookD': 4, 'bookE': 5}

Bagaimana kita dapat menggabungkan dua dictionaries dalam dalam satu dictionary tunggal? Function yang kita dapat gunakan untuk hal ini adalah update([other]). Seperti dinyatakan dalam dokumentasi Python:

Update dictionary dengan pasangan key/value dari lainnya, menulis ulang keys yang ada. Mengembalikan None.
update() menerima obyek dictionary lainnya atau sebuah pasangan key/value iterable (seperti tuples atau iterable lainnya sepanjang dua) Jika argument keyword ditentukan, dictionary akan diupdate dengan pasangan key/value tersebut: d.update(red=1, blue=2).

Jadi, untuk menggabungkan dua dictionaries di atas, kita dapat mengetikkan berikut:

dict2.update(dict1)

Katakan bahwa kamu mengetikkan pernyataan di bawah untuk melihat hasilnya:

print dict2.update(dict1)

Dalam hal ini kamu akan mendapatkan None! Ini karena function update() tidak mengembalikan sebuah dictionary baru. Untuk mendapatkan hasil penggabungan, cukup ketikkan berikut:

print dict2

Dalam hal tersebut, kamu akan mendapatkan output berikut:

{'bookA': 1, 'bookB': 2, 'bookC': 3, 'bookD': 4, 'bookE': 5}

Bagaimana jika kita melakukan di bawah ini?

dict1.update(dict2)
print dict1

Dalam hal ini, kamu akan mendapatkan output di bawah:

{'bookA': 1, 'bookB': 2, 'bookC': 2, 'bookD': 4, 'bookE': 5}

Perhatikan kasus pertama, dict2.update(dict1), kita mengupdate dictionary dict2 dengan pasangan key/value dari dict1, dan menulis ulang tiap keys yang ada. Key yang ada yang dapat kita perhatikan adalah 'bookC', yang akan memiliki nilai 3 dalam kasus ini, karena kita mengupdate dengan pasangan key/value dari dict1. Ini akan dibalikkan dengan kasus berikutnya, dict1.update(dict2), dimana kita mengupdate dictionary dict1 dengan pasangan key/value dari dict2.

Bagaimana pun juga, ada sebuah isu menggunakan update() untuk menggabungkan dua dictionaries. Isu itu berada dalam fakta bahwa dictionary asli dapat dimodifikasi. Dengan kata lain, dalam contoh kasus pertama, dict2.update(dict1), versi asli dict2 dapat dimodifikasi, dan dalam kasus selanjutnya, dict1.update(dict2), versi asli dict1 dapat dimodifikasi. Itu untuk mengatakan bahwa kamu dapat menggunakan update() untuk menggabungkan dua dictionaries jika kamu tidak tertarik dalam menyimpan versi asli dictionary yang perlu kamu update. Maksud versi asli di sini adalah menyimpan nilai key tersebut.

Menggabungkan Dua Dictionaries Dalam Ekspresi Tunggal

Metode lainnya yang dapat kamu gunakan untuk menggabungkan dua dictionaries, dimana kamu dapat melakukan tugas tertentu dalam sebuah ekspresi tunggal, adalah sebagai berikut:

print dict(dict2, **dict1)

Output pernyataan ini adalah:

{'bookA': 1, 'bookB': 2, 'bookC': 3, 'bookD': 4, 'bookE': 5}

Sehingga, dict1 menghilangkan dict2. Jika kita ingin dict2 menghilangkan dict1, kita mengetikkan:

print dict(dict1, **dict2)

Output dalam kasus ini akan menjadi:

{'bookA': 1, 'bookB': 2, 'bookC': 2, 'bookD': 4, 'bookE': 5}

Menyimpan Nilai Key

Kembali pada isu sebelumnya tentang menyimpan nilai key, bagaimana kita dapat menggabungkan dua dictionaries sembari menyimpan aslinya dari tiap dictionary?

Sebuah solusi untuk ini dapat menjadi sebagai berikut (diambil dari jawaban dalam thread StackOverflow ini):

from itertools import chain
from collections import defaultdict
dict1 = {'bookA': 1, 'bookB': 2, 'bookC': 3}
dict2 = {'bookC': 2, 'bookD': 4, 'bookE': 5}
dict3 = defaultdict(list)
for k, v in chain(dict1.items(), dict2.items()):
    dict3[k].append(v)

for k, v in dict3.items():
    print(k, v)

Output dalam kasus ini akan menjadi:

('bookA', [1])
('bookB', [2])
('bookC', [3, 2])
('bookD', [4])
('bookE', [5])

Jadi, seperti yang dapat kamu lihat dalam tip singkat ini, sangat mudah untuk menggabungkan dua dictionaries menggunakan Python, dan itu menjadi sedikit lebih kompleks jika kita ingin menyimpan nilai key yang sama dalam tiap dictionary.