fbpx
Volver a Curso

Curso profesional de Python

0% Completado
0/0 Steps
  1. Antes de iniciar el curso.

    Grupos y Foros
  2. Curso profesional de Python
    Preparación del ambiente de trabajo.
  3. Estructura y elementos del lenguaje
    7 Temas
    |
    1 Cuestionario
  4. Principales métodos del objeto string
    7 Temas
    |
    1 Cuestionario
  5. Tipos de datos complejos
    4 Temas
    |
    1 Cuestionario
  6. Funciones definidas por el usuario
    4 Temas
    |
    1 Cuestionario
  7. Módulos, paquetes y namespaces
    3 Temas
    |
    1 Cuestionario
  8. POO/OOP (Programación Orientada a Objetos)
    8 Temas
    |
    1 Cuestionario
  9. Conversión de tipos
    5 Temas
    |
    1 Cuestionario
  10. Ficheros
    4 Temas
    |
    1 Cuestionario
  11. Bases de datos con SQLITE3
    3 Temas
    |
    1 Cuestionario
  12. Encuesta sobre el curso
  13. Proyecto final
    2 Temas
Lección Progreso
0% Completado

💸 ¡Impulsa tu carrera en programación!

Descubre nuestros cursos gratuitos con certificación y aprovecha el soporte excepcional que ofrecemos a través de nuestros foros. Al unirte, no solo adquirirás nuevos conocimientos, sino que también formarás parte de una gran comunidad de aprendizaje comprometida y apasionada. ¡Comienza hoy mismo tu viaje en Azul School!

Reversed

reversed(dictview)

Si bien no es un método de los diccionarios, es una función que devuelve la vista de un diccionario en orden inverso al que se le indica como argumento. Por ejemplo:

>>> for k,v in reversed(paises_america.items()):
... 	print(k,v)
...
sur ['Argentina', 'Brasil', 'Chile', 'Uruguay', '...']
centro ['Panamá', 'Honduras', 'Costa Rica', 'Guatemala', '...']
norte ['EEUU', 'México', 'Canadá']
  • Generamos una vista con paises_america.items() y lo pasamos como argumento de reversed.
  • Iteramos esta vista con un bucle for y vemos que ahora se comienza imprimiendo los valores de la clave sur, luego centro y luego norte.

Pop

dict.pop(key[, default])

Si la clave key existe en el diccionario, elimina la pareja clave/valor y devuelve el valor. Por ejemplo:

>>> paises_america.pop("norte")
['EEUU', 'México', 'Canadá']
>>> paises_america
{'centro': ['Panamá', 'Honduras', 'Costa Rica', 'Guatemala', '...'], 'sur': ['Argentina', 'Brasil', 'Chile', 'Uruguay', '...']}
  • Siguiendo el ejemplo de países, utilizamos el método pop pasando la clave norte como argumento y vemos que devuelve la lista de países que poseía la cadena.
  • Si verificamos el contenido de la variable, vemos que se han eliminado la clave “norte” y su correspondiente valor.

En cambio, si la clave no existe, se devuelve el valor indicado como default. Si no se especifica un valor para default, se eleva una excepción KeyError. Por ejemplo:

>>> paises_america.pop("norte", "No existe la clave.")
'No existe la clave.'
>>> paises_america.pop("norte")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'norte'
  • Volvemos a utilizar pop con la misma clave que eliminamos en el ejemplo anterior pasando una cadena por defecto.
  • Vemos que devuelve dicho valor, dado a que la clave ya había sido eliminada.
  • En cambio, si realizamos la misma acción sin indicar un valor por defecto, se eleva una excepción KeyError.

Popitem

dict.popitem()

Elimina y devuelve la última pareja clave:valor del diccionario. Al utilizar este método sobre un diccionario vacío, se eleva una excepción KeyError. Por ejemplo:

>>> paises_america.popitem()
('sur', ['Argentina', 'Brasil', 'Chile', 'Uruguay', '...'])
>>> paises_america
{'centro': ['Panamá', 'Honduras', 'Costa Rica', 'Guatemala', '...']}
  • Siguiendo el ejemplo de países, utilizamos el método popitem y vemos que devuelve la pareja clave:valor correspondiente al último elemento del diccionario.
  • Si comprobamos el contenido de la variable, vemos que solo contiene la clave centro y su correspondiente valor.

Setdefault

dict.setdefault(key[, default])

Si la clave key existe en el diccionario, devuelve su valor. Si la clave no existe, agrega la misma al diccionario con el valor indicado en default y devuelve dicho valor. El valor por defecto de default es None. Por ejemplo:

>>> paises_america.setdefault("centro", "Otro valor")
['Panamá', 'Honduras', 'Costa Rica', 'Guatemala', '...']
>>> paises_america.setdefault("sur", ['Argentina', 'Brasil', 'Chile', 'Uruguay', '...'])
['Argentina', 'Brasil', 'Chile', 'Uruguay', '...']
>>> paises_america
{'centro': ['Panamá', 'Honduras', 'Costa Rica', 'Guatemala', '...'], 'sur': ['Argentina', 'Brasil', 'Chile', 'Uruguay', '...']}
  • Siguiendo el ejemplo anterior, utilizamos el método setdefault pasando la clave centro y la cadena “otro valor” como valor por defecto.
  • Como la clave centro existe en el diccionario, devuelve dicho valor.
  • Si pasamos la clave sur con la lista de países por defecto, vemos que devuelve dicha lista.
  • Si comprobamos el contenido de la variable, vemos que se ha vuelto a incluir la clave sur con la lista de países correspondientes.

Clear

dict.clear()

Elimina todas las parejas clave:valor de un diccionario. Por ejemplo:

>>> paises_america.clear()
>>> paises_america
{}
  • Utilizamos el método clear para la variable del ejemplo anterior y si comprobamos su contenido, vemos que se trata de un diccionario vacío.

Volviendo al inicio

Si volvemos a nuestro código de ejemplo inicial -ultima_modificacion.py- veremos que aún nos resta comprender algunos conceptos para entender nuestro código completo, pero si avanzamos a la línea 33, vemos que sucede lo siguiente:

  • Utilizamos el método items para crear una vista de los elementos del diccionario CONDICIONES y recorremos esta vista con un bucle for.
  • Luego, en cada iteración del for, utilizamos la función eval con el valor de la clave. Pero, qué es eval
  • En palabras simples, la función eval evalúa la “cadena” como una expresión de python y devuelve True o False como resultado.
  • De esta manera, para la primera iteración del ciclo for, se evaluará si la variable “today” es igual a la variable “date” (today == date).
  • Si el resultado de esta evaluación es True, indicamos que se debe retornar la clave k. Pero qué es esto exactamente?
  • Eso sucede porque estamos dentro de una función que hemos definido en la línea 16, pero esto lo dejaremos para el próximo módulo.