Python-Wörterbucherstellungssyntax
Frage ich mich, ob es gibt einen Weg, um füllen Sie ein Wörterbuch, so dass Sie mehrere Schlüssel-mapping auf den gleichen Wert, das ist weniger ausführlich, als zu sagen:
d = {1:'yes', 2:'yes', 3:'yes', 4:'no'}
Ich bin denken etwas entlang der Linien von:
d = {*(1,2,3):'yes', 4:'no'}
das ist natürlich ein syntax-Fehler.
Gibt es eine einigermaßen einfache Methode, dies zu tun, ohne ZU viel Verschleierung? (Ich bin nicht-spielen-code-golf, aber ich weiß auch nicht schreiben müssen, das im wesentlichen die gleiche Sache über und über. Aber jede code-golf-bezogene Antworten würde geschätzt werden, da auch code-golf ist genial =]).
Bearbeiten:
Ich wahrscheinlich nahm ein schlechtes Beispiel. Dies ist, was ich versuche zu tun:
d = {*('READY', 95): 'GPLR2_95', 'CHARGING': 'GPLR3_99', 'PROTECTION': 'GPLR3_100', 'CONNECTED': 'GPLR3_101', 'ERROR':'GPLR3_102'}
Was ich erwarten würde, diese zu erweitern ist:
d = {'READY':'GPLR2_95', 95: 'GPLR2_95', ...}
Bearbeiten->Bearbeiten:
Ich weiß, das ist dumm und völlig unnötig, aber mein Ziel ist es, diese Erklärung auf einer einzigen Zeile. Dies sollte nicht nur Antworten und das schreiben von code, nur weil es passt auf 1 Zeile, ist dumm. Aber ich Schreibe ein Modul Ebene Konstanten dict, es wäre schön, wenn es ein single-liner.
d = Sammlungen.defaultdict(lambda : 'yes')
ist nicht das, was du suchst? InformationsquelleAutor der Frage Falmarri | 2011-05-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man es umdrehen:
klicken und dann auf "invertieren", das Wörterbuch:
InformationsquelleAutor der Antwort Tim Pietzcker
Wie etwa:
InformationsquelleAutor der Antwort Charlie Martin
Code golf?
Erträge
InformationsquelleAutor der Antwort Hyperboreus
Was ist Los mit dem brechen dieses in mehrere Zeilen (wie oben)? Ist der Punkt speichern der Eingabe oder Speicherung der vertikale Raum? Etwas anderes?
BTW, es fühlt sich wirklich seltsam, haben Tasten, die eine Mischung von zahlen und strings.
Hinweis: schrieb ich das als Antwort statt eines Kommentars, weil ich zeigen wollte formatierten code über mehrere Zeilen.
InformationsquelleAutor der Antwort Steven Rumbalski
Für Ihren Fall
, Und wenn Sie benötigen mehrere Schlüssel für
'yes'
und'no'
Nicht so toll, aber funktioniert.
InformationsquelleAutor der Antwort Tim Perevezentsev
Oder in 3.x:
InformationsquelleAutor der Antwort Ignacio Vazquez-Abrams