2010-09-28 23 views
26

Duplicar posible:
syntax to insert one list into another list in pythonsintaxis para crear un diccionario en otro diccionario en Python

¿Cómo puede ser la sintaxis para crear un diccionario en otro diccionario en Python

+4

¿Qué tutorial estás usando para aprender Python? –

+3

posible duplicado de [sintaxis para insertar una lista en otra lista en python] (http://stackoverflow.com/questions/3748063/syntax-to-insert-one-one-list-into-another-list-in-python) (Sí, entiendo completamente que las listas no son diccionarios, pero de nuevo es como la misma pregunta con diferentes palabras. ¿Qué sigue, creando tuplas dentro de tuplas?) –

+0

además, es del mismo usuario. Uno pensaría que un ejemplo sería suficiente. – aaronasterling

Respuesta

5
dict1 = {} 

dict1['dict2'] = {} 

print dict1 

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

esto se conoce comúnmente como iteradores de anidamiento en otros iteradores, creo

80

Se puede declarar un diccionario dentro de un diccionario por los nidos de los {} recipientes:

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

Y a continuación, se puede acceder a los elementos utilizando la sintaxis []:

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

Teniendo en cuenta lo anterior, si desea agregar otro diccionario al diccionario, puede hacerlo así:

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

o si prefiere añadir elementos al diccionario interno de uno en uno:

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

¿Cómo se agrega un término genérico para llamar a los elementos? En lugar de escribir 'dict1', ¿cómo se puede llamar a ese primer elemento (en caso de que no se llame 'dict1') ** En la parte de impresión – ono

2

¿Quieres insertar un diccionario en el otro, como uno de sus elementos, o quiere hacer referencia a los valores de un diccionario de la llaves de otro?

Las respuestas anteriores ya han cubierto el primer caso, donde está creando un diccionario dentro de otro diccionario.

Para volver a referenciar los valores de un diccionario a otro, puede utilizar dict.update:

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

Un cambio en un valor que está presente tanto en los diccionarios serán visibles en ambos:

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

Esto es lo mismo que copiar el valor o crear un nuevo diccionario con él, es decir,

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