Dictionary mit Duplikaten umkehren

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Dictionaries sind eine grundlegende Datenstruktur in Python, die es Ihnen ermöglicht, Schlüssel-Wert-Paare zu speichern. Manchmal müssen Sie ein Dictionary umkehren, was bedeutet, dass die Schlüssel und Werte getauscht werden, sodass die Werte zu den Schlüsseln werden und die Schlüssel zu den Werten. In dieser Herausforderung müssen Sie eine Funktion schreiben, die ein Dictionary mit nicht-eindeutigen hashbaren Werten umkehrt.

Ein Dictionary umkehren

Schreiben Sie eine Funktion invert_dictionary(obj), die ein Dictionary obj als Eingabe nimmt und ein neues Dictionary zurückgibt, bei dem die Schlüssel und Werte vertauscht sind. Das Eingabedictionary wird nicht-eindeutige hashbare Werte haben. Wenn zwei oder mehr Schlüssel den gleichen Wert haben, sollte die Funktion die Schlüssel in einer Liste im Ausgabedictionary anhängen.

Um dieses Problem zu lösen, können Sie die folgenden Schritte ausführen:

  1. Erstellen Sie ein collections.defaultdict mit list als Standardwert für jeden Schlüssel.
  2. Verwenden Sie dictionary.items() in Kombination mit einer Schleife, um die Werte des Dictionaries mithilfe von dict.append() zu Schlüsseln zuzuordnen.
  3. Verwenden Sie dict(), um das collections.defaultdict in ein reguläres Dictionary umzuwandeln.

Funktionssignatur: def invert_dictionary(obj: dict) -> dict:

from collections import defaultdict

def collect_dictionary(obj):
  inv_obj = defaultdict(list)
  for key, value in obj.items():
    inv_obj[value].append(key)
  return dict(inv_obj)
ages = {
  'Peter': 10,
  'Isabel': 10,
  'Anna': 9,
}
collect_dictionary(ages) ## { 10: ['Peter', 'Isabel'], 9: ['Anna'] }

Zusammenfassung

In dieser Herausforderung haben Sie gelernt, wie Sie ein Dictionary mit nicht-eindeutigen hashbaren Werten umkehren. Sie haben ein collections.defaultdict mit list als Standardwert für jeden Schlüssel verwendet und dann die Werte des Dictionaries mithilfe von dict.append() zu Schlüsseln zugeordnet. Schließlich haben Sie dict() verwendet, um das collections.defaultdict in ein reguläres Dictionary umzuwandeln.