Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program Python untuk memisahkan kamus dan kuncinya ke dalam kamus yang sama K

Program Python untuk memisahkan kamus dan kuncinya ke dalam kamus yang sama K

PHPz
PHPzke hadapan
2023-08-28 08:57:221104semak imbas

Program Python untuk memisahkan kamus dan kuncinya ke dalam kamus yang sama K

Kamus ialah bentuk tatasusunan unik yang digunakan untuk melaksanakan struktur data dalam Python. Kamus mempunyai beberapa ciri berkaitan yang menjadikannya alat yang sangat berkuasa dalam Python. Ia menyimpan data dalam bentuk pasangan nilai kunci, di mana setiap kunci ialah pengecam unik yang digunakan untuk mengakses nilai sepadan yang dikaitkan dengannya.

Kami boleh melakukan pelbagai operasi pada kamus ini dan memanipulasi data yang disimpan di dalamnya. Artikel ini akan menerangkan operasi sedemikian di mana kami membahagikan kamus dan kuncinya kepada K kamus yang sama.

Memahami masalah

Kita perlu lulus kamus dan kemudian bahagikannya kepada kamus yang sama K, dengan "K" ialah saiz kamus asal. Cara pembahagian hendaklah dengan membahagikan semua kunci sama rata. Marilah kita memahami perkara ini melalui contoh -

Input: dict1 = {"Score":100, "Age": 40, "Salary": 25000, "cutoff":44}
Output: [{'Score': 25.0, 'Age': 10.0, 'Salary': 6250.0, 'cutoff': 11.0}, 
{'Score': 25.0, 'Age': 10.0, 'Salary': 6250.0, 'cutoff': 11.0}, 
{'Score': 25.0, 'Age': 10.0, 'Salary': 6250.0, 'cutoff': 11.0}, 
{'Score': 25.0, 'Age': 10.0, 'Salary': 6250.0, 'cutoff': 11.0}]

Di sini setiap nilai yang dikaitkan dengan kunci berbeza dikurangkan kepada 1/K kali nilai asal dan senarai kamus K dikembalikan. Sekarang setelah kita membincangkan pernyataan masalah, mari kita bincangkan beberapa penyelesaian.

Gunakan lelaran

Dalam kaedah ini kita akan lulus kamus contoh dan kemudian mendapatkan nilai "K" dengan bantuan kaedah "len()". Kaedah ini akan mengembalikan panjang kamus. Selepas itu, kami akan mengulangi kamus contoh dan membahagikan setiap "nilai kunci" dengan K dengan bantuan operan "/".

Kami akan menyimpan nilai terbahagi ini dalam kamus kosong dan kemudian menambah semua kamus yang baru dibuat pada senarai kosong dengan bantuan kaedah "append()".

Contoh

dict1 = {"Score":100 , "Age": 40, "Salary": 25000, "cutoff":44}
print(f"Original dictionary is: {dict1}")
K = len(dict1)
print(f"The value for K is: {K}")

empLis = []
empDict ={}
for keys in dict1:
   empDict[keys] = dict1[keys]/K
   empLis.append(empDict)

print(f"The newly divided dictionary is: {empLis}")

Output

Original dictionary is: {'Score': 100, 'Age': 40, 'Salary': 25000, 'cutoff': 44}
The value for K is: 4
The newly divided dictionary is: [{'Score': 25.0, 'Age': 10.0, 'Salary': 6250.0, 'cutoff': 11.0}, {'Score': 25.0, 'Age': 10.0, 'Salary': 6250.0, 'cutoff': 11.0}, {'Score': 25.0, 'Age': 10.0, 'Salary': 6250.0, 'cutoff': 11.0}, {'Score': 25.0, 'Age': 10.0, 'Salary': 6250.0, 'cutoff': 11.0}]

Gunakan pemahaman senarai dan pemahaman kamus

Kaedah ini ialah versi optimum daripada penyelesaian sebelumnya. Di sini kami akan meringkaskan lelaran ke atas satu kamus dan senarai dengan bantuan pemahaman kamus dan pemahaman senarai. Selepas lulus kamus contoh, kami akan mencipta kamus di mana kami akan menyimpan nilai terbahagi (DivDict).

Mengulang dan mengembalikan kamus asal dibahagikan dengan kekunci K. Senaraikan (lisDict) menyimpan kamus K yang mengandungi nilai terbahagi. Kami menentukan bahawa panjang senarai adalah sama dengan nilai K.

Contoh

dict1 = {"Number of sixes":244, "Number of fours": 528, "Strike rate": 164, "Balls faced":864}
print(f"Original dictionary is: {dict1}")
K = len(dict1)
print(f"The value for K is: {K}")

#using dictionary comprehension
DivDict ={key_value:dict1[key_value]/K for key_value in dict1}
#using list comprehension
lisDict = [DivDict for i in range(K)]

print(f"The newly divided dictionary is: {lisDict}")

Output

Original dictionary is: {'Number of sixes': 244, 'Number of fours': 528, 'Strike rate': 164, 'Balls faced': 864}
The value for K is: 4
The newly divided dictionary is: [{'Number of sixes': 61.0, 'Number of fours': 132.0, 'Strike rate': 41.0, 'Balls faced': 216.0}, {'Number of sixes': 61.0, 'Number of fours': 132.0, 'Strike rate': 41.0, 'Balls faced': 216.0}, {'Number of sixes': 61.0, 'Number of fours': 132.0, 'Strike rate': 41.0, 'Balls faced': 216.0}, {'Number of sixes': 61.0, 'Number of fours': 132.0, 'Strike rate': 41.0, 'Balls faced': 216.0}]

Terdapat kaedah lain yang melibatkan penggunaan: - zip(), lambda(), groupby(), slice dll.

Kaedah ini boleh digunakan apabila kita perlu memperkenalkan spesifikasi tertentu dalam kod, seperti untuk nilai atau kunci tertentu dalam kamus. Penyelesaian di atas adalah pendekatan asas yang boleh digunakan untuk membahagikan kamus sampel kepada K bahagian yang sama.

Kesimpulan

Dalam artikel ini, kami membincangkan dua penyelesaian untuk membahagikan kamus dan kuncinya ke dalam K kamus yang sama. Penyelesaian pertama berkisar tentang "konsep gelung" di mana kami mengulangi kamus dan menambahkannya pada senarai. Penyelesaian kedua memfokuskan pada pendekatan yang lebih optimum, di mana kami meringkaskan keseluruhan konsep gelung ke dalam satu kamus dan senarai.

Atas ialah kandungan terperinci Program Python untuk memisahkan kamus dan kuncinya ke dalam kamus yang sama K. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam