Aktualisieren von Werten für mehrere Schlüssel in python
Was ist die sauberste Möglichkeit zum aktualisieren der Werte mehrerer Schlüssel in einem Wörterbuch, um die gespeicherten Werte in einem Tupel?
Beispiel:
Ich will von
>>>mydict = {'a':None, 'b':None, 'c':None, 'd':None}
>>>mytuple = ('alpha', 'beta', 'delta')
zu
>>>print mydict
{'a':'alpha', 'b':'beta', 'c':None, 'd':'delta'}
Ist es ein einfacher one-liner für dieser? So etwas wie diese scheint zu sein, immer in der Nähe, was ich will.
BEARBEITEN:
Ich möchte nicht auf zuweisen von Werten zu Schlüsseln basierend auf Ihren ersten Brief. Ich hoffe nur für so etwas wie
mydict('a','b','d') = mytuple
Offensichtlich, dass nicht funktioniert, aber ich bin der Hoffnung für etwas ähnliches.
- Welche Regel verwenden Sie in Ihrem Kopf zu ordnen Sie den Wert
alpha
mit dem Schlüssela
? Der Wert beginnt mita
? - Überprüfen Sie diesen link: [stackoverflow.com/questions/16129405/... [1]: stackoverflow.com/questions/16129405/...
- Ich sehe nicht die Relevanz
- Eric, wir entschuldigen uns für die nicht klar in meiner ursprünglichen Frage. Ich habe aktualisiert, um widerzuspiegeln, was ich will.
- der erste Antwort-post gibt die Antwort auf die angeforderte problem. Es ist indirekt auch irgendwie, aber trotzdem, die Antwort ist es ebenso. Ich habe nicht gesagt, es ist ein Duplikat, ich habe gerade vorwärts, die post. So, ich glaube, dass es relevant ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie versuchen, erstellen Sie ein neues Wörterbuch:
Wenn Sie versuchen, hinzufügen oder eine bestehende ändern Sie einfach die
=
zu.update(…)
.So, dein Beispiel kann geschrieben werden als:
Wenn Sie dies tun, mehr als einmal, ich würde es einpacken in eine Funktion, so kann man schreiben:
Oder vielleicht eine "Curry" - Funktion, die parallelen Bediener.itemgetter?
Könnten Sie Liste Verständnis machen es zu einem one-liner, aber es ist nicht super effizient.
Vorausgesetzt, die association key <-> Wert ist der erste Buchstabe des Wertes ist der erste Buchstabe des Schlüssels.
{v[0]: v for v in mytuple if v[0] in mydict}
c
- Taste. Das Ergebnis wäre{'a': 'alpha', 'b': 'beta', 'd': 'delta'}
Würde ich vermeiden, one-Liner in diesem Fall. Es macht den code besser lesbar.
Wenn Sie hinzufügen möchten mytuple Elemente, auch wenn der Schlüssel nicht vorhanden ist, entfernen Sie einfach die
if
- Anweisung.