Python: Agregar y eliminar elementos de un diccionario

Objetivo: mostrar cómo agregar y eliminar elementos de un diccionario en Python.

En la anterior entrega explicamos el concepto de diccionario en Python y vimos el modo de crearlos. Hoy presentaremos dos técnicas básicas: la agregación y eliminación de elementos.

Comencemos con la creación de un par de diccionarios de ejemplo sobre los que practicaremos desde el intérprete interactivo:

>>> gazpacho = {}
>>> menda = {'Nombre':'Javier', 'Apellido':'Montero'}

El primero, gazpacho, es un simple diccionario vacío que utilizaremos para almacenar la receta del gazpacho; el otro, menda, recoge algunos datos sobre mi persona. Más adelante veremos que podemos crear estructuras de datos más complejas, basadas en los diccionarios, que podremos emplear para mantener una agenda de nuestros contactos personales y sin necesidad de recurrir a un gestor de bases de datos.

Para agregar un par clave-valor a un diccionario, recurrimos a la siguiente sintaxis:

diccionario[clave] = valor

Probémoslo con gazpacho:

>>> gazpacho['Aceite'] = '300 ml'

Verificamos que gazpacho, que antes estaba vacío, ahora contiene ese par:

>>> gazpacho
{'Aceite': '300 ml'}

Continuemos con la receta secreta:

>>> gazpacho['Vinagre'] = '100 ml'
>>> gazpacho['Pepino'] = 1
>>> gazpacho['Pimiento'] = 1

Veamos cómo evoluciona nuestra creación:

>>> gazpacho
{'Pimiento': 1, 'Aceite': '300 ml', 'Vinagre': '100 ml', 'Pepino': 1}

Observa la salida de esta última instrucción y recuerda lo que dijimos sobre el orden de los diccionarios: no son una estructura ordenada, aunque veremos formas de hacerlos más presentables si lo deseamos.

Añadamos nuevos elemendos al menda:

>>> menda['URL'] = 'http://www.elclubdelautodidacta.es'
>>> menda['Twitter'] = '@pradery'

tras lo cual,

>>> menda
{'URL': 'http://www.elclubdelautodidacta.es', 'Nombre': 'Javier', 'Twitter': '@pradery', 'Apellido': 'Montero'}

Las claves han de ser únicas. Si tratamos de agregar otra ya existente, simplemente el valor nuevo sustituirá al antiguo:

>>> gazpacho['Pimiento'] = 2
>>> menda['URL'] = 'http://elclubdelautodidacta.es/wp/'

Observa cómo los valores correspondientes son actualizados:

>>> gazpacho
{'Pimiento': 2, 'Aceite': '300 ml', 'Vinagre': '100 ml', 'Pepino': 1}
>>> menda
{'URL': 'http://elclubdelautodidacta.es/wp/', 'Nombre': 'Javier', 'Twitter': '@pradery', 'Apellido': 'Montero'}

Para borrar un par clave-valor de un diccionario disponemos de la sentencia del, que emplearemos del siguiente modo:

del diccionario[clave]

Por ejemplo:

>>> del gazpacho['Aceite']
>>> gazpacho
{'Pimiento': 2, 'Vinagre': '100 ml', 'Pepino': 1}

>>> del menda['URL']
>>> menda
{'Nombre': 'Javier', 'Twitter': '@pradery', 'Apellido': 'Montero'}

Con del podríamos cargarnos incluso el objeto completo:

>>> del gazpacho

A partir de este momento el gazpacho ha dejado de existir y ha pasado a mejor vida:

>>> gazpacho
Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    gazpacho
NameError: name 'gazpacho' is not defined

Y con menda mejor no lo hago, no sea que traiga mala suerte…

Javier Montero Gabarró


Python: Agregar y eliminar elementos de un diccionario


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

13 opiniones en “Python: Agregar y eliminar elementos de un diccionario”

      1. queria saber si se puede eliminar solo un elemento dentro de una cadena de un diccionario
        ejemplo:
        diccionario = {hola:mundo, 3:tres,nombre:[luis,arturo,carlos]}

        en este caso quiero elimanr carlos, se pude eiminar?

        1. Buentas tardes, Luis:

          Hay varias cosas que podrías hacer. Partimos de tu diccionario:

          >>> diccionario = { ‘hola’: ‘mundo’, 3 : ‘tres’, ‘nombre’ :[‘luis’ ,’arturo’, ‘carlos’]}

          (sé cuidadoso a la hora de escribir los strings, no olvides que deben aparecer entrecomillados)

          La primera posibilidad es sustituir la entrada correspondiente del diccionario por el una nueva lista actualizada:

          >>> diccionario[‘nombre’] = [‘luis’, ‘arturo’]
          >>> diccionario
          {‘nombre’: [‘luis’, ‘arturo’], 3: ‘tres’, ‘hola’: ‘mundo’}

          Pero podría no ser una solución cómoda si la lista fuera grande.

          Lo más elegante sería modificar “in situ” la propia lista. Veamos cómo se hace:

          Primero regeneramos el diccionario a su valor inicial

          >>> diccionario = { ‘hola’: ‘mundo’, 3 : ‘tres’, ‘nombre’ :[‘luis’ ,’arturo’, ‘carlos’]}

          y eliminamos ‘carlos’ in situ:

          >>> diccionario[‘nombre’].remove(‘carlos’)

          >>> diccionario
          {‘nombre’: [‘luis’, ‘arturo’], 3: ‘tres’, ‘hola’: ‘mundo’}

          Observa que diccionario[‘nombre’] es una lista. Para eliminar un elemento in situ de la lista hemos usado el método remove de las listas.

          Saludos

  1. necesito agregar un valor al diccionario, sin que me modifique o reemplace ningún otro de los valores. como podría hacer eso ?. Cabe aclarar que tengo un diccionario con 12 valores y quiero mandar el numero 13. y utilizando una variable de ingreso y asignándolo a otra variable.

    1. Buenos días, Juan:
      Si no quieres que el valor asociado a una determinada clave de un diccionario se modifique tendrás que comprobar de algún modo que esa clave no exista previamente. Puedes recurrir al operador in. Observa este uso simple para comprobar la existencia o no de una clave particular:

      >>> rollings = {'mick':'jagger', 'keith':'richards'}
      >>> 'keith' in rollings
      True

      Agrega, entonces un simple if que verifique que tu clave no exista previamente.
      Saludos

  2. Buenas, Quisiera poder sumar el numero entero de cada uno de los vendedores dentro de mi Diccionario. Ejemplo:

    mi_diccionario = { ‘vendedor1’: 3000, ‘vendedor2’: 5000, ‘vendedor3’: 2000 }

    Necesito tener alrededor de 20-30 vendedores y cada uno con enteros diferentes, Como hago para sumar solo el numero entero de cada vendedor?

    En este caso deberia de dar 10000

    1. Asi podria ser?

      mi_diccionario = { ‘vendedor1’: 3000, ‘vendedor2’: 5000, ‘vendedor3’: 2000, ‘vendedor4’: 7000 }

      suma = 0

      for i in mi_diccionario.values():
      suma += i

      print (suma)

Deja un comentario