Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Programm zum Aufteilen eines Wörterbuchs und seiner Schlüssel in K gleiche Wörterbücher

Python-Programm zum Aufteilen eines Wörterbuchs und seiner Schlüssel in K gleiche Wörterbücher

PHPz
PHPznach vorne
2023-08-28 08:57:221104Durchsuche

Python-Programm zum Aufteilen eines Wörterbuchs und seiner Schlüssel in K gleiche Wörterbücher

Ein Wörterbuch ist eine einzigartige Form eines Arrays, das zum Implementieren von Datenstrukturen in Python verwendet wird. Wörterbücher verfügen über mehrere verwandte Funktionen, die sie zu einem sehr leistungsstarken Werkzeug in Python machen. Es speichert Daten in Form von Schlüssel-Wert-Paaren, wobei jeder Schlüssel eine eindeutige Kennung ist, die für den Zugriff auf den entsprechenden damit verbundenen Wert verwendet wird.

Wir können verschiedene Operationen an diesem Wörterbuch durchführen und die darin gespeicherten Daten bearbeiten. In diesem Artikel wird ein solcher Vorgang erläutert, bei dem wir ein Wörterbuch und seine Schlüssel in K gleiche Wörterbücher aufteilen.

Das Problem verstehen

Wir müssen ein Wörterbuch übergeben und es dann in K gleiche Wörterbücher aufteilen, wobei „K“ die Größe des Originalwörterbuchs ist. Die Art der Partitionierung sollte darin bestehen, alle Schlüssel gleichmäßig aufzuteilen. Lassen Sie uns dies anhand eines Beispiels verstehen -

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}]

Hier wird jeder mit einem anderen Schlüssel verknüpfte Wert auf das 1/K-fache des Originalwerts reduziert und eine Liste von K Wörterbüchern zurückgegeben. Nachdem wir nun die Problemstellung besprochen haben, wollen wir einige Lösungen besprechen.

Iteration verwenden

In dieser Methode übergeben wir ein Wörterbuch mit Beispielen und erhalten dann den Wert „K“ mithilfe der Methode „len()“. Diese Methode gibt die Länge des Wörterbuchs zurück. Danach werden wir das Beispielwörterbuch durchlaufen und jeden „Schlüsselwert“ mit Hilfe des Operanden „/“ durch K dividieren.

Wir werden diese geteilten Werte in einem leeren Wörterbuch speichern und dann alle neu erstellten Wörterbücher mit Hilfe der Methode "append()"zu einer leeren Liste hinzufügen.

Beispiel

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}")

Ausgabe

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}]

Verwenden Sie Listenverständnis und Wörterbuchverständnis

Diese Methode ist eine optimierte Version der vorherigen Lösung. Hier werden wir Iterationen über ein einzelnes Wörterbuch und eine einzelne Liste mit Hilfe des Wörterbuchverständnisses und des Listenverständnisses zusammenfassen. Nachdem wir das Beispielwörterbuch übergeben haben, erstellen wir ein Wörterbuch, in dem wir die geteilten Werte speichern (DivDict).

Iteriert das durch K-Tasten geteilte Originalwörterbuch und gibt es zurück. Die Liste (lisDict) speichert K Wörterbücher mit geteilten Werten. Wir geben an, dass die Länge der Liste dem K-Wert entspricht.

Beispiel

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}")

Ausgabe

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}]

Es gibt andere Methoden, die die Verwendung von: - zip(), lambda(), groupby(), Slice usw. beinhalten.

Diese Methoden können verwendet werden, wenn wir bestimmte Spezifikationen in den Code einführen müssen, beispielsweise für einen bestimmten Wert oder Schlüssel in einem Wörterbuch. Die obige Lösung ist der grundlegende Ansatz, mit dem das Beispielwörterbuch in K gleiche Teile aufgeteilt werden kann.

Fazit

In diesem Artikel haben wir zwei Lösungen für die Partitionierung eines Wörterbuchs und seiner Schlüssel in K gleiche Wörterbücher besprochen. Die erste Lösung dreht sich um das „Loop-Konzept“, bei dem wir das Wörterbuch durchlaufen und es der Liste hinzufügen. Die zweite Lösung konzentriert sich auf einen optimierteren Ansatz, bei dem wir das gesamte Schleifenkonzept in einem einzigen Wörterbuch und einer einzigen Liste zusammenfassen.

Das obige ist der detaillierte Inhalt vonPython-Programm zum Aufteilen eines Wörterbuchs und seiner Schlüssel in K gleiche Wörterbücher. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen