Praktische Lösungen und Beispiele
Ein Dictionary mit eindeutigen Werten invertieren
Hier ist ein Beispiel für das Invertieren eines Dictionaries mit eindeutigen Werten:
original_dict = {
"apple": 1,
"banana": 2,
"cherry": 3
}
inverted_dict = {value: key for key, value in original_dict.items()}
print(inverted_dict) ## Ausgabe: {1: 'apple', 2: 'banana', 3: 'cherry'}
In diesem Beispiel verwenden wir eine Dictionary-Comprehension, um ein neues Dictionary zu erstellen, in dem die Schlüssel und Werte vertauscht sind.
Ein Dictionary mit doppelt vorkommenden Werten invertieren
Wenn wir mit einem Dictionary umgehen, das doppelte Werte hat, können wir ein defaultdict
aus dem collections
-Modul verwenden, um den Invertierungsprozess zu behandeln:
from collections import defaultdict
original_dict = {
"apple": 1,
"banana": 2,
"cherry": 1,
"date": 2
}
inverted_dict = defaultdict(list)
for key, value in original_dict.items():
inverted_dict[value].append(key)
print(dict(inverted_dict)) ## Ausgabe: {1: ['apple', 'cherry'], 2: ['banana', 'date']}
In diesem Beispiel erstellen wir ein defaultdict
mit dem Standardwert einer leeren Liste. Wenn wir durch das ursprüngliche Dictionary iterieren, fügen wir die Schlüssel zur Liste hinzu, die mit dem entsprechenden Wert im invertierten Dictionary assoziiert ist.
Doppelte Werte mit einem Counter behandeln
Ein anderer Ansatz, um ein Dictionary mit doppelt vorkommenden Werten zu invertieren, ist es, die Counter
-Klasse aus dem collections
-Modul zu verwenden. Dies ermöglicht es uns, die Vorkommen jedes Werts zu zählen und dann das invertierte Dictionary entsprechend zu erstellen.
from collections import Counter
original_dict = {
"apple": 1,
"banana": 2,
"cherry": 1,
"date": 2
}
counter = Counter(original_dict.values())
inverted_dict = {value: [key for key, v in original_dict.items() if v == value] for value in counter}
print(inverted_dict) ## Ausgabe: {1: ['apple', 'cherry'], 2: ['banana', 'date']}
In diesem Beispiel erstellen wir zunächst ein Counter
-Objekt, um die Vorkommen jedes Werts im ursprünglichen Dictionary zu zählen. Dann verwenden wir eine Dictionary-Comprehension, um das invertierte Dictionary zu erstellen, wobei die Schlüssel die eindeutigen Werte aus dem ursprünglichen Dictionary sind und die Werte Listen der entsprechenden Schlüssel sind.
Durch das Verständnis dieser praktischen Lösungen und Beispiele werden Sie in der Lage sein, Dictionaries mit sowohl eindeutigen als auch doppelt vorkommenden Werten in Ihren Python-Projekten effektiv zu invertieren.