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.

Kommentar zu dem Problem
Offensichtlich ist, d = Sammlungen.defaultdict(lambda : 'yes') ist nicht das, was du suchst? Kommentarautor: khachik
Umkehr Ihr Schlüssel würde auch funktionieren... 'ja': (1,2,3) Kommentarautor: Nix
@Nix: ja, es ist nur mein Beispiel. Ich werde aktualisieren, damit Sie etwas mehr im Einklang mit meiner Anwendung. Kommentarautor: Falmarri
Keine Notwendigkeit, wollte nur sicherstellen, dass Sie eine andere Art des Denkens über es nicht entfernen müssen, um es zu tun.. Kommentarautor: Nix
Oh, für crying out loud. Schreiben, ein wenig Funktion, die Tupel-und Vektor als Argumente. Schreiben Sie einen iterator. Schreiben Sie, für Götter Willen, auf mehr als eine Zeile. Jemand anderes möglicherweise Lesen Sie diese eines Tages. Kommentarautor: Charlie Martin

InformationsquelleAutor der Frage Falmarri | 2011-05-31

Schreibe einen Kommentar