Secara umum, datar lebih baik daripada bersarang. Jadi, jika Anda tidak perlu membuat sarang, mungkin lebih baik tidak
Yang mengatakan, ada kalanya bersarang adalah solusi yang lebih bersih, tetapi pikirkan tentang struktur data Anda. "product", 2.99 , itu Tuple kan?
Anda sekarang dapat memiliki kamus Tuples, yang lebih mudah diakses;
def menu(key): items = { 1: ("Ham & Cheese", 5), 2: ("Cheesy Garlic", 5), 3: ("Hawaiian", 5), 4: ("Classic Cheese", 5) } return items.get(key)… yang dapat diakses dengan name, price = menu(key) yang pada gilirannya dapat di-loop
for key in range(1,5): name, price = menu(key) print(name, price) _Setelah Anda sejauh itu, dan itu melakukan apa yang Anda inginkan, Anda bisa menjadi sedikit kreatif dengan fungsi print() dalam lingkaran itu dan memiliki sesuatu seperti ini. print(f"{key}: {name.ljust(18,'.')}${price:0.2f}") yang dapat terlihat sedikit mengintimidasi, tetapi tidak sulit untuk dipisahkan, yang akan menjadi hal yang baik untuk Anda lakukan, sehingga Anda memperluas apa yang telah Anda pelajari
Gunakan fungsi penghitung modul Koleksi untuk menjumlahkan nilai kamus dengan kunci di Python. Penghitung adalah sub-kelas yang digunakan untuk menghitung objek hashable dan menghitung setiap elemen yang ada dalam wadah
Contoh menjumlahkan nilai kamus dengan kunci di Python
Kode contoh sederhana memiliki dua kamus dengan kunci yang sama dan nilai numerik yang berbeda. Kami menggabungkan kamus ini menjadi satu dan menjumlahkan nilai kamus dengan kunci
from collections import Counter x = {"a": 200, "b": 560, "y": 2005, "z": 2555} y = {"a": 255, "b": 266, "y": 3050, "z": 3033} z = Counter(x) + Counter(y) print(z)Keluaran
Misalnya, jika Anda ingin menjumlahkan semua nilai kamus untuk menemukan jumlahnya. Panggil dikt. values() untuk mengembalikan nilai kamus dict lalu gunakan sum(values) untuk mengembalikan jumlah nilai
a_dict = {"a": 1, "b": 2, "c": 3} values = a_dict.values() total = sum(values) print(total)Keluaran. 6
Berikan komentar jika Anda memiliki keraguan atau saran tentang topik penjumlahan Python ini
Catatan. IDE. PyCharm 2021. 3. 3 (Edisi Komunitas)
Windows 10
Piton 3. 10. 1
Semua Contoh Python ada di Python 3, jadi Mungkin berbeda dari python 2 atau versi yang ditingkatkan
Rohit
Gelar dalam Ilmu Komputer dan Insinyur. Pengembang Aplikasi dan memiliki banyak pengalaman bahasa Pemrograman. Antusias terhadap teknologi & suka belajar teknis
Sangat mudah untuk mendapatkan jumlah nilai kamus python. Pertama-tama Anda bisa mendapatkan nilai dalam daftar menggunakan dict. nilai(). Kemudian Anda dapat memanggil metode penjumlahan untuk mendapatkan jumlah dari nilai-nilai ini.
contoh
d = { 'foo': 10, 'bar': 20, 'baz': 30 } print(sum(d.values()))_Keluaran
Ini akan memberikan output -
60Kamus dapat berisi kamus lain, yang pada gilirannya dapat berisi kamus itu sendiri, dan seterusnya hingga kedalaman yang sewenang-wenang. Ini dikenal sebagai kamus bersarang
Kamus bersarang adalah salah satu dari banyak cara untuk merepresentasikan informasi terstruktur (mirip dengan 'catatan' atau 'struktur' dalam bahasa lain)
Buat Kamus Bersarang
Kamus bersarang dibuat dengan cara yang sama seperti kamus normal dibuat. Satu-satunya perbedaan adalah bahwa setiap nilai adalah kamus lain
Mari buat kamus yang menyimpan catatan karyawan
D = {'emp1': {'name': 'Bob', 'job': 'Mgr'}, 'emp2': {'name': 'Kim', 'job': 'Dev'}, 'emp3': {'name': 'Sam', 'job': 'Dev'}}_
Konstruktor dict()
Ada beberapa cara untuk membuat kamus bertingkat menggunakan konstruktor jenis yang disebut dict()
Untuk membuat kamus bersarang, cukup berikan kunci kamus. pasangan nilai sebagai argumen kata kunci untuk D = dict(emp1 = {'name': 'Bob', 'job': 'Mgr'}, emp2 = {'name': 'Kim', 'job': 'Dev'}, emp3 = {'name': 'Sam', 'job': 'Dev'}) print(D) # Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'}, # 'emp2': {'name': 'Kim', 'job': 'Dev'}, # 'emp3': {'name': 'Sam', 'job': 'Dev'}}_5 Konstruktor
D = dict(emp1 = {'name': 'Bob', 'job': 'Mgr'}, emp2 = {'name': 'Kim', 'job': 'Dev'}, emp3 = {'name': 'Sam', 'job': 'Dev'}) print(D) # Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'}, # 'emp2': {'name': 'Kim', 'job': 'Dev'}, # 'emp3': {'name': 'Sam', 'job': 'Dev'}}
Anda dapat menggunakan fungsi dict() bersama dengan fungsi zip() , untuk menggabungkan daftar kunci dan nilai terpisah yang diperoleh secara dinamis saat runtime
IDs = ['emp1','emp2','emp3'] EmpInfo = [{'name': 'Bob', 'job': 'Mgr'}, {'name': 'Kim', 'job': 'Dev'}, {'name': 'Sam', 'job': 'Dev'}] D = dict(zip(IDs, EmpInfo)) print(D) # Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'}, # 'emp2': {'name': 'Kim', 'job': 'Dev'}, # 'emp3': {'name': 'Sam', 'job': 'Dev'}}_
Anda sering ingin membuat kamus dengan nilai default untuk setiap kunci. Metode fromkeys() menawarkan cara untuk melakukan ini
IDs = ['emp1','emp2','emp3'] Defaults = {'name': '', 'job': ''} D = dict.fromkeys(IDs, Defaults) print(D) # Prints {'emp1': {'name': '', 'job': ''}, # 'emp2': {'name': '', 'job': ''}, # 'emp3': {'name': '', 'job': ''}}
Akses Item Kamus Bersarang
Anda dapat mengakses masing-masing item dalam kamus bersarang dengan menentukan kunci dalam beberapa tanda kurung siku
D = {'emp1': {'name': 'Bob', 'job': 'Mgr'}, 'emp2': {'name': 'Kim', 'job': 'Dev'}, 'emp3': {'name': 'Sam', 'job': 'Dev'}} print(D['emp1']['name']) # Prints Bob print(D['emp2']['job']) # Prints Dev
Jika Anda merujuk ke kunci yang tidak ada dalam kamus bersarang, pengecualian akan dimunculkan
print(D['emp1']['salary']) # Triggers KeyError: 'salary'
Untuk menghindari pengecualian tersebut, Anda dapat menggunakan metode kamus khusus get(). Metode ini mengembalikan nilai kunci jika kunci ada di kamus, jika tidak D = dict(emp1 = {'name': 'Bob', 'job': 'Mgr'}, emp2 = {'name': 'Kim', 'job': 'Dev'}, emp3 = {'name': 'Sam', 'job': 'Dev'}) print(D) # Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'}, # 'emp2': {'name': 'Kim', 'job': 'Dev'}, # 'emp3': {'name': 'Sam', 'job': 'Dev'}}6, sehingga metode ini tidak pernah memunculkan D = dict(emp1 = {'name': 'Bob', 'job': 'Mgr'}, emp2 = {'name': 'Kim', 'job': 'Dev'}, emp3 = {'name': 'Sam', 'job': 'Dev'}) print(D) # Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'}, # 'emp2': {'name': 'Kim', 'job': 'Dev'}, # 'emp3': {'name': 'Sam', 'job': 'Dev'}}7
# key present print(D['emp1'].get('name')) # Prints Bob # key absent print(D['emp1'].get('salary')) # PrintsNone
Ubah Item Kamus Bersarang
Untuk mengubah nilai item tertentu dalam kamus bersarang, lihat kuncinya
D = {'emp1': {'name': 'Bob', 'job': 'Mgr'}, 'emp2': {'name': 'Kim', 'job': 'Dev'}, 'emp3': {'name': 'Sam', 'job': 'Dev'}} D['emp3']['name'] = 'Max' D['emp3']['job'] = 'Janitor' print(D['emp3']) # Prints {'name': 'Max', 'job': 'Janitor'}
Tambahkan atau Perbarui Item Kamus Bersarang
Menambahkan atau memperbarui item kamus bersarang itu mudah. Cukup rujuk item dengan kuncinya dan berikan nilai. Jika kunci sudah ada di kamus, nilainya diganti dengan yang baru
D = {'emp1': {'name': 'Bob', 'job': 'Mgr'}, 'emp2': {'name': 'Kim', 'job': 'Dev'}, 'emp3': {'name': 'Sam', 'job': 'Dev'}} D['emp3'] = {'name': 'Max', 'job': 'Janitor'} print(D) # Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'}, # 'emp2': {'name': 'Kim', 'job': 'Dev'}, # 'emp3': {'name': 'Max', 'job': 'Janitor'}}
Jika kuncinya baru, itu ditambahkan ke kamus dengan nilainya
D = {'emp1': {'name': 'Bob', 'job': 'Mgr'}, 'emp2': {'name': 'Kim', 'job': 'Dev'}, 'emp3': {'name': 'Sam', 'job': 'Dev'}} D['emp4'] = {'name': 'Max', 'job': 'Janitor'} print(D) # Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'}, # 'emp2': {'name': 'Kim', 'job': 'Dev'}, # 'emp3': {'name': 'Sam', 'job': 'Dev'}, # 'emp4': {'name': 'Max', 'job': 'Janitor'}}
Menggabungkan Dua Kamus Bersarang
Gunakan metode update() bawaan untuk menggabungkan kunci dan nilai dari satu kamus bersarang ke kamus lainnya. Perhatikan bahwa metode ini secara membabi buta menimpa nilai kunci yang sama jika terjadi bentrokan
D = dict(emp1 = {'name': 'Bob', 'job': 'Mgr'}, emp2 = {'name': 'Kim', 'job': 'Dev'}, emp3 = {'name': 'Sam', 'job': 'Dev'}) print(D) # Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'}, # 'emp2': {'name': 'Kim', 'job': 'Dev'}, # 'emp3': {'name': 'Sam', 'job': 'Dev'}}0
Di sini catatan ’emp2′ diperbarui sementara ’emp3′ ditambahkan ke kamus
Hapus Item Kamus Bersarang
Ada beberapa cara untuk menghapus item dari kamus bersarang
Hapus Item dengan Kunci
Jika Anda mengetahui kunci item yang diinginkan, Anda dapat menggunakan metode pop() . Itu menghapus kunci dan mengembalikan nilainya