2010-09-28 9 views
26

Eventuali duplicati:
syntax to insert one list into another list in pythonsintassi per la creazione di un dizionario in un altro dizionario in Python

Come potrebbe essere la sintassi per la creazione di un dizionario in un altro dizionario in Python

+4

Che tutorial stai usando per imparare Python? –

+3

possibile duplicato di [sintassi per inserire una lista in un'altra lista in python] (http://stackoverflow.com/questions/3748063/syntax-to-insert-one-list-into-another-list-in-python) (Sì, capisco perfettamente che gli elenchi non sono dizionari, ma è come la stessa domanda di nuovo con parole diverse. Che cosa succederà dopo, creando tuple all'interno di tuple?) –

+0

inoltre, è dello stesso utente. Penseresti che un esempio sarebbe sufficiente. – aaronasterling

risposta

5
dict1 = {} 

dict1['dict2'] = {} 

print dict1 

>>> {'dict2': {},} 

questo è comunemente noto come iteratore di annidamento in altri iteratori, penso

80

È possibile dichiarare un dizionario in un dizionario con l'annidamento le {} contenitori:

d = {'dict1': {'foo': 1, 'bar': 2}, 'dict2': {'baz': 3, 'quux': 4}} 

E allora si può accedere agli elementi utilizzando la sintassi []:

print d['dict1']   # {'foo': 1, 'bar': 2} 
print d['dict1']['foo'] # 1 
print d['dict2']['quux'] # 4 

luce di quanto sopra, se vuoi aggiungere un altro dizionario al dizionario, puoi farlo in questo modo:

d['dict3'] = {'spam': 5, 'ham': 6} 

o se si preferisce aggiungere elementi al dizionario interno uno per uno:

d['dict4'] = {} 
d['dict4']['king'] = 7 
d['dict4']['queen'] = 8 
+0

Come si aggiunge un termine generico per chiamare gli elementi? Invece di scrivere 'dict1', come puoi chiamare quel primo elemento (nel caso in cui non si chiami 'dict1') ** Alla parte di stampa – ono

2

Vuoi inserire un dizionario nell'altro, come uno dei suoi elementi, o si desidera fare riferimento i valori di una dizionario dal le chiavi di un altro?

Le risposte precedenti hanno già coperto il primo caso, in cui si sta creando un dizionario all'interno di un altro dizionario.

Per ri-riferimento i valori di un dizionario in un altro, è possibile utilizzare dict.update:

>>> d1 = {1: [1]} 
>>> d2 = {2: [2]} 
>>> d1.update(d2) 
>>> d1 
{1: [1], 2: [2]} 

Una modifica a un valore che è presente in entrambi i dizionari saranno visibili in entrambi:

>>> d1[2].append('appended') 
>>> d1 
{1: [1], 2: [2, 'appended']} 
>>> d2 
{2: [2, 'appended']} 

È come copiare il valore o creare un nuovo dizionario con esso, ovvero

>>> d3 = {1: d1[1]} 
>>> d3[1].append('appended from d3') 
>>> d1[1] 
[1, 'appended from d3'] 
Problemi correlati