Gibt für das Tupel t = ((1, 'a'),(2, 'b'))
dict(t)
zurück{1: 'a', 2: 'b'}
Gibt es einen guten Weg, um zu bekommen {'a': 1, 'b': 2}
(Schlüssel und Vals getauscht)?
Letztendlich möchte ich in der Lage sein, 1
gegeben 'a'
oder 2
gegeben zurückzukehren 'b'
. Vielleicht ist die Umwandlung in ein Diktat nicht der beste Weg.
python
dictionary
tuples
Jake
quelle
quelle
dict(zip(*zip(*t)[::-1]))
. Dies ist langsamer, hässlicher und verbraucht viel mehr Speicher. Wahrscheinlich 3x.dict((x, y) for x, y, z in t)
oderdict((x, (y, z)) for x, y, z in t)
den zweiten und dritten Wert als Tupel erhalten.Eine etwas einfachere Methode:
quelle
reverse
explizit formuliert habe.map
schneller als ein Verständnis ist, wenn das zugeordnete Objekt eine andere integrierte Funktion (wiereversed
) ist. In den meisten anderen Fällen ist das Gegenteil der Fall. Aber es ist besser zu profilieren als zu raten :)Noch prägnanter, wenn Sie mit Python 2.7 arbeiten:
quelle
Oder:
quelle
Wenn für denselben Schlüssel mehrere Werte vorhanden sind, werden diese Werte mit dem folgenden Code an eine Liste angehängt, die ihrem Schlüssel entspricht.
quelle
Hier sind einige Möglichkeiten, dies zu tun:
quelle