Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas

Diccionario en Python

Esta guía completa explica los diccionarios de Python: cómo crearlos, acceder, añadir, eliminar elementos y aprovechar métodos integrados.

Video: Diccionarios en Python para Almacenar Pares Clave/Valor

Los diccionarios de Python son colecciones no ordenadas de pares clave/valor. Cada entrada asocia una clave única e inmutable con un valor que puede ser de cualquier tipo.


Crear un Diccionario en Python

Definir un diccionario es sencillo: coloca pares clave/valor separados por comas dentro de llaves {}. Las claves deben ser inmutables (cadenas, números, o tuplas de elementos inmutables) y únicas; los valores pueden ser de cualquier tipo y repetirse.

# diccionario vacío
my_dict = {}
# diccionario con claves enteras
my_dict = {1: 'manzana', 2: 'pelota'}
# diccionario con claves mixtas
my_dict = {'nombre': 'Juan', 1: [2, 4, 3]}
# usando dict()
my_dict = dict({1:'manzana', 2:'pelota'})
# desde secuencia de pares
my_dict = dict([(1,'manzana'), (2,'pelota')])

Todos los enfoques anteriores crean la misma estructura de diccionario.


Acceder a Elementos de un Diccionario

Los valores de diccionario se recuperan vía sus claves, ya sea con corchetes [] o el método get(). Usar corchetes lanza KeyError si la clave no existe; get() devuelve None por defecto.

# get vs [] para recuperar elementos
my_dict = {'nombre': 'Jack', 'edad': 26}
# Salida: Jack
print(my_dict['nombre'])
# Salida: 26
print(my_dict.get('edad'))
# Intentar acceder a clave inexistente devuelve None
print(my_dict.get('dirección'))
# KeyError
print(my_dict['dirección'])

Salida

Jack 26 None Traceback (most recent call last): File "<string>", line 15, in <module> print(my_dict['dirección']) KeyError: 'dirección'

Cambiar y Añadir Elementos de Diccionario

Los diccionarios son mutables. Asignar a una clave existente actualiza su valor; asignar a una clave nueva añade una entrada nueva.

# Cambiando y añadiendo elementos de diccionario
my_dict = {'nombre': 'Jack', 'edad': 26}
# actualizar valor
my_dict['edad'] = 27
# Salida: {'edad': 27, 'nombre': 'Jack'}
print(my_dict)
# añadir elemento
my_dict['dirección'] = 'Centro'
# Salida: {'dirección': 'Centro', 'edad': 27, 'nombre': 'Jack'}
print(my_dict)

Salida

{'nombre': 'Jack', 'edad': 27} {'nombre': 'Jack', 'edad': 27, 'dirección': 'Centro'}

Eliminar Elementos de un Diccionario

Usa pop() para eliminar una clave específica y recuperar su valor. popitem() elimina un par arbitrario, mientras que clear() limpia el diccionario completo. La palabra clave del puede eliminar entradas individuales o la variable completa.

# Eliminando elementos de un diccionario
# crear un diccionario
squares = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# eliminar un elemento particular, devuelve su valor
# Salida: 16
print(squares.pop(4))
# Salida: {1: 1, 2: 4, 3: 9, 5: 25}
print(squares)
# eliminar un elemento arbitrario, devuelve (clave,valor)
# Salida: (5, 25)
print(squares.popitem())
# Salida: {1: 1, 2: 4, 3: 9}
print(squares)
# eliminar todos los elementos
squares.clear()
# Salida: {}
print(squares)
# eliminar el diccionario mismo
del squares
# Lanza Error
print(squares)

Salida

16 {1: 1, 2: 4, 3: 9, 5: 25} (5, 25) {1: 1, 2: 4, 3: 9} {} Traceback (most recent call last): File "<string>", line 30, in <module> print(squares) NameError: name 'squares' is not defined

Métodos de Diccionario en Python

La tabla siguiente lista métodos comunes de diccionario y sus propósitos. Muchos se demuestran en los ejemplos que siguen.

MétodoDescripción
clear()Elimina todos los elementos del diccionario.
copy()Devuelve una copia superficial del diccionario.
fromkeys(seq[, v])Crea nuevo diccionario desde seq con cada clave en v (por defecto None).
get(key[,d])Devuelve valor para key; si ausente, devuelve d (por defecto None).
items()Devuelve vista de pares (clave, valor) del diccionario.
keys()Devuelve vista de las claves del diccionario.
pop(key[,d])Elimina key y devuelve su valor o d; lanza KeyError si key falta y d no se proporciona.
popitem()Elimina y devuelve par (clave, valor) arbitrario; lanza KeyError si diccionario vacío.
setdefault(key[,d])Devuelve valor para key; si ausente, inserta key con valor d (por defecto None) y devuelve d.
update([other])Inserta o actualiza pares clave/valor desde other, sobrescribiendo claves existentes.
values()Devuelve vista de los valores del diccionario.

Ejemplo de uso:

# Métodos de Diccionario
marks = {}.fromkeys(['Matemáticas', 'Inglés', 'Ciencias'], 0)
# Salida: {'Inglés': 0, 'Matemáticas': 0, 'Ciencias': 0}
print(marks)
for item in marks.items():
    print(item)
# Salida: ['Inglés', 'Matemáticas', 'Ciencias']
print(list(sorted(marks.keys())))

Salida

{'Matemáticas': 0, 'Inglés': 0, 'Ciencias': 0} ('Matemáticas', 0) ('Inglés', 0) ('Ciencias', 0) ['Inglés', 'Matemáticas', 'Ciencias']

Comprensión de Diccionarios en Python

La comprensión de diccionarios ofrece una sintaxis concisa para construir diccionarios desde iterables. Sigue el patrón {clave: valor for elemento in iterable}.

# Comprensión de Diccionario
squares = {x: x*x for x in range(6)}
print(squares)

Salida

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Versión imperativa equivalente:

squares = {}
for x in range(6):
    squares[x] = x*x
print(squares)

Salida

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Las comprehensions pueden incluir múltiples bucles y filtros if. Ejemplo: solo cuadrados impares.

# Comprensión de Diccionario con condicional if
odd_squares = {x: x*x for x in range(11) if x % 2 == 1}
print(odd_squares)

Salida

{1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

Para más sobre comprensiones de diccionarios, ver Python Dictionary Comprehension.


Otras Operaciones con Diccionarios

Prueba de Pertenencia en Diccionario

Usa el operador in para verificar si existe una clave; no inspecciona valores.

# Prueba de Pertenencia para Claves de Diccionario
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Salida: True
print(1 in squares)
# Salida: True
print(2 not in squares)
# las pruebas de pertenencia son solo para clave, no valor
# Salida: False
print(49 in squares)

Salida

True True False

Iterar sobre un Diccionario

Itera sobre claves directamente, luego accede a valores.

# Iterando sobre un Diccionario
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in squares:
    print(squares[i])

Salida

1 9 25 49 81

Funciones Integradas para Diccionarios

Funciones estándar como all(), any(), len() y sorted() se aplican frecuentemente a diccionarios.

FunciónDescripción
all()True si toda clave evalúa a True (o si diccionario vacío).
any()True si alguna clave evalúa a True; False para diccionario vacío.
len()Número de pares clave/valor.
cmp()Compara dos diccionarios (eliminado en Python 3).
sorted()Devuelve lista ordenada de claves.

Ejemplos:

# Funciones Integradas de Diccionario
squares = {0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Salida: False
print(all(squares))
# Salida: True
print(any(squares))
# Salida: 6
print(len(squares))
# Salida: [0, 1, 3, 5, 7, 9]
print(sorted(squares))

Salida

False True 6 [0, 1, 3, 5, 7, 9]

python

  1. Dominando tipos de datos en Python: Guía práctica
  2. Dominando operadores en Python: Guía completa
  3. Dominando la sentencia pass en Python: Guía práctica
  4. Dominando argumentos de funciones en Python: Posicionales, por palabra clave y por defecto
  5. Dominando Iteradores en Python: Cómo Funcionan y Cómo Crear los Tuyos
  6. Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
  7. Dominando datetime en Python: Guía Práctica de Fechas, Horas y Zonas Horarias
  8. Visión general de Python: Lenguaje de alto nivel, legible, interactivo y orientado a objetos
  9. Números en Python: Entendiendo tipos de datos numéricos inmutables
  10. Dominando cadenas en Python: Creación, acceso y manipulación
  11. Dominando tuplas en Python: Definición, uso y diferencias con listas