Jumlahkan nilai dalam kamus bersarang python

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

Jumlahkan nilai dalam kamus bersarang python

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

Jumlahkan nilai dalam kamus bersarang python

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 -

60

Jumlahkan nilai dalam kamus bersarang python


Jumlahkan nilai dalam kamus bersarang python

Kamus 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

Bagaimana Anda menemukan jumlah nilai dalam kamus bersarang di Python?

5 Cara Terbaik untuk Menjumlahkan Nilai Kamus dengan Python .
Metode 1. Gunakan sum() dan dict. nilai()
Metode 2. Gunakan sum() dan Generator Expression
Metode 3. Gunakan functools. kurangi() dan Lambda
Metode 4. Gunakan jumlah() dan daftar()
Metode 5. Gunakan sederhana untuk loop dan agregat

Bagaimana Anda menjumlahkan daftar kamus dengan Python?

Untuk menjumlahkan nilai dalam daftar kamus. Gunakan ekspresi generator untuk mengulangi daftar. Pada setiap iterasi, akses kamus saat ini di tombol tertentu. Teruskan ekspresi generator ke fungsi sum() .

Bagaimana Anda menjumlahkan dua kunci dalam kamus dengan Python?

Metode #2. Menggunakan kunci() + sum() .

Bisakah saya menambahkan beberapa nilai ke kamus Python?

Gagasan Umum. Dengan Python, jika kita ingin kamus memiliki banyak nilai untuk satu kunci, kita perlu menyimpan nilai ini dalam wadahnya sendiri di dalam kamus. Untuk melakukannya, kita perlu menggunakan wadah sebagai nilai dan menambahkan beberapa nilai kita ke wadah itu . Wadah umum adalah daftar, tupel, dan set.