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:

dict.setdefault(clave, valor_predeterminado)

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:

edades = {'Juan': 30, 'María': 25, 'Carlos': 40}

setdefault() para una clave existente en Python

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

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:

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:

juan_edad = edades.setdefault('Juan', 50)
print("Nueva edad de Juan:", juan_edad)

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.