Diccionarios#


Un diccionario es un conjunto de valores emparejados. En cierto modo un diccionario es parecido a una lista, con la diferencia de que los índices no tienen porqué ser numéricos sino que, además, pueden ser cadenas que es lo mas habitual, tuplas o inclusive una combinación de ellos.

Al definir un diccionario, los valores de cada par se separan entre ellos con dos puntos (:), y de los otros pares por comas(,). El conjunto debe estar acotado entre llaves ({ }), ejemplo: { llave1:valor1, llave2:valor2 }

Para acceder a un valor concreto, se pone el nombre del diccionario seguido del índice entre corchetes ([ ]) como hemos hecho con las listas, con la salvedad de que aquí ese índice no tiene por que ser un número. Del mismo modo que las listas se pueden agregar un nuevo par de valores o modificar uno existente.

D={"a":1}
D["a"]
1
D
{'a': 1}
Alumno={"nombre":"Humberto",
        "apellido":"Rojas",
        "edad":20,
        "codigo":201840,
        "ciudad":"lima"}
Alumno["nombre"]
'Humberto'
print(Alumno)
{'nombre': 'Humberto', 'apellido': 'Rojas', 'edad': 20, 'codigo': 201840, 'ciudad': 'lima'}

Para añadir un nuevo elemento a un diccionario existente, se usa el operador de asignación (=). A la izquierda del operador aparece el objeto diccionario con la nueva llave entre corchetes ([ ]) y a la derecha el valor que se asocia a dicha clave

Alumno["talla"]="M"
print(Alumno)
{'nombre': 'Humberto', 'apellido': 'Rojas', 'edad': 20, 'codigo': 201840, 'ciudad': 'lima', 'talla': 'M'}

También existe el método setdefault(llave, valor). Este método devuelve el valor de la llave si ya existe y, en caso contrario, le asigna el valor que se pasa como segundo argumento. Si no se especifica este segundo argumento, por defecto es None.

Alumno.setdefault("talla")
'M'
Alumno.setdefault("tel",99151)
print(Alumno)
{'nombre': 'Humberto', 'apellido': 'Rojas', 'edad': 20, 'codigo': 201840, 'ciudad': 'lima', 'talla': 'M', 'tel': 99151}
Alumno.setdefault("altura")
print(Alumno)
{'nombre': 'Humberto', 'apellido': 'Rojas', 'edad': 20, 'codigo': 201840, 'ciudad': 'lima', 'talla': 'M', 'tel': 99151, 'altura': None}

Para actualizar el valor asociado a una llave, simplemente se asigna un nuevo valor a dicha llave del diccionario.

Alumno["nombre"]="Aldair"
print(Alumno)
{'nombre': 'Aldair', 'apellido': 'Rojas', 'edad': 20, 'codigo': 201840, 'ciudad': 'lima', 'talla': 'M', 'tel': 99151, 'altura': None}
Alumno["tel"]={"cel":123456789,"fijo":1234567}
print(Alumno)
print(Alumno["tel"]["cel"])
{'nombre': 'Aldair', 'apellido': 'Rojas', 'edad': 20, 'codigo': 201840, 'ciudad': 'lima', 'talla': 'M', 'tel': {'cel': 123456789, 'fijo': 1234567}, 'altura': None}
123456789

Los diccionarios pueden pensarse como pares key, valor. Para obtener todas las claves (keys), valores, o pares (llave, valor) usamos:

print ('\n' + 70*'+' + '\n\tkeys:')
print (list(Alumno.keys()))
print ('\n' + 70*'+'+ '\n\tvalues:')
print (list(Alumno.values()))
print ('\n' + 0*'+'+ '\n\titems:')
print (list(Alumno.items()))
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	keys:
['nombre', 'apellido', 'edad', 'codigo', 'ciudad', 'talla', 'tel', 'altura']

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	values:
['Aldair', 'Rojas', 20, 201840, 'lima', 'M', {'cel': 123456789, 'fijo': 1234567}, None]


	items:
[('nombre', 'Aldair'), ('apellido', 'Rojas'), ('edad', 20), ('codigo', 201840), ('ciudad', 'lima'), ('talla', 'M'), ('tel', {'cel': 123456789, 'fijo': 1234567}), ('altura', None)]

Número de elementos de un diccionario:

print(Alumno)
len(Alumno)
{'nombre': 'Aldair', 'apellido': 'Rojas', 'edad': 20, 'codigo': 201840, 'ciudad': 'lima', 'talla': 'M', 'tel': {'cel': 123456789, 'fijo': 1234567}, 'altura': None}
8

Eliminar un elemento del diccionario:

  • pop(llave [, valor por defecto]): Si la llave está en el diccionario, elimina el elemento y devuelve su valor; si no, devuelve el valor por defecto. Si no se proporciona el valor por defecto y la llave no está en el diccionario, se lanza la excepción KeyError.
  • popitem(): Elimina el último par llave: valor del diccionario y lo devuelve. Si el diccionario está vacío se lanza la excepción KeyError. (NOTA: En versiones anteriores a Python 3.7, se elimina/devuelve un par aleatorio, no se garantiza que sea el último).
  • del d[llave]: Elimina el par llave: valor. Si no existe la clave, se lanza la excepción KeyError.
  • clear(): Borra todos los pares clave: valor del diccionario.
Prueba={"nombre":"humberto"}
#valor_borrado= Prueba.pop("nombre")
lista_borrados=["nombre",Prueba.pop("nombre")]
print(Prueba)
print(lista_borrados)
{}
['nombre', 'humberto']
Alumno.pop("direccion","no se añadio una direccion")
'no se añadio una direccion'
print(Alumno)
{'nombre': 'Aldair', 'apellido': 'Rojas', 'edad': 20, 'codigo': 201840, 'ciudad': 'lima', 'talla': 'M', 'tel': {'cel': 123456789, 'fijo': 1234567}, 'altura': None}
Alumno.popitem()
('altura', None)
print(Alumno)
{'nombre': 'Aldair', 'apellido': 'Rojas', 'edad': 20, 'codigo': 201840, 'ciudad': 'lima', 'talla': 'M', 'tel': {'cel': 123456789, 'fijo': 1234567}}
del Alumno["apellido"]
print(Alumno)
{'nombre': 'Aldair', 'edad': 20, 'codigo': 201840, 'ciudad': 'lima', 'talla': 'M', 'tel': {'cel': 123456789, 'fijo': 1234567}}
Alumno.clear()
print(Alumno)
{}

También se puede crear un diccionario vacío

Dic_vacio={}
print(Dic_vacio)
{}