ho qualche codice che assomigli a questo:creare un dizionario Python che contiene coppie chiave-valore specifici da un altro dizionario
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']}
Sicuramente c'è un modo migliore per esprimere questo. Io in realtà leggere i documenti, nella speranza che il metodo di un dizionario copy
accetta chiavi da inserire nel nuovo dizionario:
# I'd hoped that something like this would work...
a = d.copy('foo', 'bar')
b = d.copy('foo', 'baz')
c = d.copy('bar', 'baz')
potrei scrivere una funzione per questo scopo:
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')
C'è una migliore soluzione rispetto a quanto sopra?
Perché non si utilizza un elenco (o un set) per a, b, c? Hai freddo il valore in su quando ne hai bisogno. – maxy
In realtà sto passando 'a',' b' e 'c' alla funzione' urlencode' di Django (che, come 'urllib.urlencode', accetta un dizionario). – davidchambers
@BlaXpirit: dovresti scrivere una risposta contenente solo "No". (attenersi alla dimensione minima con un commento HTML) in modo che tutti possiamo votare follemente. –