python append lista - ¿Añadir nuevas claves a un diccionario?





10 Answers

>>> x = {1:2}
>>> print x
{1: 2}

>>> x.update({3:4})
>>> print x
{1: 2, 3: 4}
dentro metodos agregar

¿Es posible agregar una clave a un diccionario de Python después de que se haya creado? No parece tener un método .add() .




Sí, es bastante fácil. Solo haz lo siguiente:

dict["key"] = "value"



dictionary[key] = value






Esta pregunta popular aborda los métodos funcionales de fusionar diccionarios a y b .

Estos son algunos de los métodos más sencillos (probados en Python 3) ...

c = dict( a, **b ) ## see also https://.com/q/2255878
c = dict( list(a.items()) + list(b.items()) )
c = dict( i for d in [a,b] for i in d.items() )

Nota: el primer método anterior solo funciona si las claves en b son cadenas.

Para agregar o modificar un solo elemento , el diccionario b contendría solo ese elemento ...

c = dict( a, **{'d':'dog'} ) ## returns a dictionary based on 'a'

Esto es equivalente a ...

def functional_dict_add( dictionary, key, value ):
   temp = dictionary.copy()
   temp[key] = value
   return temp

c = functional_dict_add( a, 'd', 'dog' )



Supongamos que desea vivir en el mundo inmutable y NO desea modificar el original, sino que desea crear un nuevo dict que es el resultado de agregar una nueva clave al original.

En Python 3.5+ puedes hacer:

params = {'a': 1, 'b': 2}
new_params = {**params, **{'c': 3}}

El equivalente de Python 2 es:

params = {'a': 1, 'b': 2}
new_params = dict(params, **{'c': 3})

Después de cualquiera de estos:

params sigue siendo igual a {'a': 1, 'b': 2}

y

new_params es igual a {'a': 1, 'b': 2, 'c': 3}

Habrá ocasiones en las que no desee modificar el original (solo desea el resultado de agregarlo al original). Me parece una alternativa refrescante a lo siguiente:

params = {'a': 1, 'b': 2}
new_params = params.copy()
new_params['c'] = 3

o

params = {'a': 1, 'b': 2}
new_params = params.copy()
new_params.update({'c': 3})

Referencia: https://.com/a/2255892/514866




Podemos agregar nuevas claves al diccionario de esta manera:

Dictionary_Name [New_Key_Name] = New_Key_Value

Aquí está el ejemplo:

# This is my dictionary
my_dict = {'Key1': 'Value1', 'Key2': 'Value2'}
# Now add new key in my dictionary
my_dict['key3'] = 'Value3'
# Print updated dictionary
print my_dict

Salida:

{'key3': 'Value3', 'Key2': 'Value2', 'Key1': 'Value1'}



Tiene un método de actualización que puedes usar así:

dict.update({"key" : "value"})




Yo lo haría así. Cuidado con el directory[name]=number parte.

n = int(raw_input())
directory={}
entry={}
# store the values as if they appear in the stdin
for i in xrange(n):
    name, number = raw_input().split()
    directory[name]=number

#  query the values    
while (True):
    queryname = (str) (raw_input())
    try:
        strdisp = queryname + "=" + directory[queryname]
        print strdisp
    except:
      print 'Not found'



Utilice el operador de asignación de subíndices:

d['x'] = "value"

No olvide que la clave de Python se puede hacer con cualquier elemento hashable, lo que significa bool , int , string incluso una tupla o cualquier objeto hashable.




Related