Wenn Sie versuchen, Schlüssel und Werte zu tauschen und nicht dagegen, doppelte Werte Schlüsselkonflikte erstellen, können Sie „reverse“ das Wörterbuch ziemlich leicht mit einer einzigen Zeile Code:
dictionary = dict(map(reversed, dictionary.items()))
Wenn Sie lieber das Wörterbuch Verständnis Syntax stattdessen verwenden würde, diese Zeile schreiben:
dictionary = {value: key for key, value in dictionary.items()}
Wenn Sie nicht die items
Methode des Wörterbuchs verwenden möchten, ist es ziemlich einfach zu vermeiden:
dictionary = {dictionary[key]: key for key in dictionary}
Wenn Sie eine Kopie des Wörterbuchs zu schaffen leisten können, können Sie es an Ort und Stelle umkehren kann, wenn nötig:
def reverse_in_place(dictionary):
reference = dictionary.copy()
dictionary.clear()
dictionary.update(map(reversed, reference.items()))
Pythons "Diktat" ist ungeordnet. Sie sollten erklären, was Sie meinen, indem Sie es umkehren. – Drop
Wie sollte Ihrer Meinung nach "Inplace" funktionieren? Ist die Zuweisung eines neuen Wörterbuchs zu einer alten Wörterbuchvariablen in Ordnung oder möchten Sie nur Elemente innerhalb des Diktats manipulieren? – Drop
by reverse Ich meine Swap-Schlüssel-Werte, und ich würde lieber nur die Elemente im Dict manipulieren und nicht mit einem neuen Wörterbuch, so dass die ID (dict) würde gleich bleiben. – Kinor