Método setdefault() de diccionario en Python

El método setdefault() de un diccionario en Python se utiliza para establecer un valor predeterminado para una clave en caso de que la clave no exista en el diccionario. Si la clave ya existe, el método devuelve el valor correspondiente a esa clave sin realizar ninguna modificación en el diccionario. Básicamente, este método evita que ocurran errores de clave no encontrada.


Sintaxis de setdefault() en Python

La sintaxis del método setdefault() es la siguiente:

Ejemplo

    valor_predeterminado = "desconocido"

clave = "marca"

dict.setdefault(clave, valor_predeterminado)
print(clave)

  

Donde:

  • dict es el diccionario en el que deseas operar.
  • clave es la clave que deseas buscar en el diccionario.
  • valor_predeterminado es el valor que se asignará a la clave si no existe en el diccionario.

Ejemplo de setdefault() en Python

Supongamos que tenemos un diccionario llamado edades que contiene las edades de algunas personas:

Ejemplo

    edades = {'Juan': 30, 'María': 25, 'Carlos': 40}
print(edades)
  
Abrir en editor

setdefault() para una clave existente en Python

Si deseamos obtener la edad de Juan, podemos usar setdefault() de la siguiente manera:

Ejemplo

    juan_edad = edades.setdefault('Juan', 0)
print("Edad de Juan:", juan_edad)
  

En este caso, juan_edad será igual a 30, que es la edad de Juan en el diccionario. El valor predeterminado (0 en este caso) no se utiliza porque la clave "Juan" ya existe en el diccionario.


setdefault() para una clave que no existe en Python

Si deseamos obtener la edad de Ana, pero Ana no está en el diccionario, podemos usar setdefault() de la siguiente manera:

Ejemplo

    juan_edad = edades.setdefault('Juan', 0)
print("Edad de Juan:", juan_edad)
ana_ed
ana_edad = edades.setdefault('Ana', 0)
print("Edad de Ana:", ana_edad)
  

En este caso, ana_edad será igual a 0, que es el valor predeterminado que especificamos. Además, el diccionario edades ahora se actualizará con la clave "Ana" y el valor 0.


setdefault() para agregar una clave con un valor predeterminado

También podemos utilizar setdefault() para agregar una clave con un valor predeterminado, incluso si la clave ya existe. Por ejemplo:

Ejemplo

    valor_predeterminado = "desconocido"

clave = "marca"

dict.setdefault(clave, valor_predeterminado)
print(clave)
  

En este caso, juan_edad será igual a 30 (la edad original de Juan en el diccionario), pero el diccionario no cambiará. Esto significa que setdefault() no modifica el valor existente de la clave.

  • setdefault() se utiliza para obtener el valor de una clave en un diccionario y, si la clave no existe, agregarla con un valor predeterminado.
  • Si la clave ya existe en el diccionario, setdefault() no modifica el diccionario y devuelve el valor existente.
  • Si la clave no existe en el diccionario, setdefault() agrega la clave con el valor predeterminado especificado y devuelve ese valor.

Practica Método setdefault() de diccionario en Python en el editor

Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.

Ejercicio: Supongamos que tenemos un diccionario llamado

Supongamos que tenemos un diccionario llamado edades que contiene las edades de algunas personas.

Ejemplo

    valor_predeterminado = "desconocido"

clave = "marca"

dict.setdefault(clave, valor_predeterminado)
print(clave)
  
Abrir en editor

Ejercicio: Usar print()

Si deseamos obtener la edad de Juan, podemos usar setdefault() de la siguiente manera.

Ejemplo

    juan_edad = edades.setdefault('Juan', 0)
print("Edad de Juan:", juan_edad)
  
Abrir en editor

Ejercicio: Usar print() (2)

Si deseamos obtener la edad de Ana, pero Ana no está en el diccionario, podemos usar setdefault() de la siguiente manera.

Ejemplo

    juan_edad = edades.setdefault('Juan', 0)
print("Edad de Juan:", juan_edad)
ana_ed
ana_edad = edades.setdefault('Ana', 0)
print("Edad de Ana:", ana_edad)
  
Abrir en editor

Ejercicio: También podemos utilizar

También podemos utilizar setdefault() para agregar una clave con un valor predeterminado, incluso si la clave ya existe. Por ejemplo.

Ejemplo

    edades = {'Juan': 30, 'María': 25, 'Carlos': 40}
print(edades)
  
Abrir en editor