Machen Sie einen Satz von Wörterbuch-Werten
Möchte ich erstellen eine Reihe von Werten von einer bestehenden dict
def function(dictionary):
...
return set_of_values
Sagen mein Wörterbuch wie folgt aussieht: {'1': 'Monday', '2': 'Tuesday', '3': 'Monday'}
Möchte ich einen Satz zurückgegeben, enthält nur die eindeutigen Werte, wie diese:
{'Monday', 'Tuesday'}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Python:
Äquivalent bei Python 2.7:
Benötigen Sie ein cross-kompatibel Python 2.7/3.x-code:
viewvalues
möglicherweise schneller alsitervalues
. Und es ist auch mehr im Einklang mit der 3.x Verhalten. Aber dann wird natürlich der code nicht funktioniert in 2.6 und früher.set(my_dict[k] for k in my_dict)
... Denke, das sollte ziemlich viel überall...six
odermodernize
), dann verwenden Sie einfach, dass. Ja, es ist ein top-level-Funktion statt einer Methode, aber who cares? Alsoset(viewvalues(my_dict))
.six
hat eineviewvalues
, aber ich bin sicher, es hat mindestensitervalues
oder Ihre eigenen wrapper dauert etwa 30 Sekunden, wie dieser.values()
/itervalues()
undviewvalues()
genannt worden war - die einzige andere Möglichkeit wäre eine set-comp (aber das ist 2.7 wie der Blick* - Methoden)__getitem__
overhead, aber zumindest haben Sie nicht "erraten Sie die richtige Methode"Nur ein weiterer Weg, um eindeutig aus:
set
...set
wörtliche...