Erstellen Sie ein Python-dictionary mit bestimmten Schlüssel–Wert-Paare aus einem anderen Wörterbuch

Ich habe einige code, der etwa wie folgt aussieht:

d = {'foo': True, 'bar': 42, 'baz': '!'}

a = {'foo': d['foo'], 'bar': d['bar']}
b = {'foo': d['foo'], 'baz': d['baz']}
c = {'bar': d['bar'], 'baz': d['baz']}

Sicherlich gibt es einen besseren Weg, um dies auszudrücken. Ich habe tatsächlich die Dokumentation Lesen, in der Hoffnung, dass ein Wörterbuch - copy - Methode akzeptiert die Schlüssel werden in das neue Wörterbuch:

# I'd hoped that something like this would work...
a = d.copy('foo', 'bar')
b = d.copy('foo', 'baz')
c = d.copy('bar', 'baz')

Ich könnte eine Funktion schreiben, die für diesen Zweck:

copydict = lambda dct, *keys: {key: dct[key] for key in keys}

a = copydict(d, 'foo', 'bar')
b = copydict(d, 'foo', 'baz')
c = copydict(d, 'bar', 'baz')

Gibt es eine bessere Lösung als die oben genannten?

Warum verwenden nicht Sie eine Liste (oder ein set) für a,b,c? Sie kalten Blick der Wert in d, wenn Sie es brauchen.
Ich bin tatsächlich vorbei a, b, und c zu Django ' s urlencode - Funktion (die, wie urllib.urlencode, nimmt ein Wörterbuch).
schreiben Sie eine Antwort, die nur "Nein". (pad, um die minimale Größe mit einem HTML-Kommentar), so dass wir alle wahnsinnig Abstimmung.
möglich, Duplikat der beste Weg, um zu extrahieren Teilmenge von Schlüssel-Wert-Paare aus python-dictionary-Objekt
Falls du interessiert bist, ich habe eine Frage, über die man besser nicht kopieren: stackoverflow.com/questions/9329537/...

InformationsquelleAutor davidchambers | 2012-02-18

Schreibe einen Kommentar