12 de agosto de 2018
Python es un lenguaje de programación en boga en el año 2018. En el año 2018 hay más ofertas de trabajo para programadores en python que para programadores en Java. Python está siendo utilizado intensivamente en terrenos de inteligencia artificial, análisis estadístico y bigdata. No está de más aprender Python.
Los dictionaries / diccionarios nos permiten almacenar varios valores en una variable. Los valores almacenados pueden ser números enteros, números decimales, strings / cadenas de caracteres, listas, otros diccionarios... Cada valor es un elemento / element.
¡Las listas también nos permiten almacenar varios valores en una variable! La diferencia entre un dictionary y una lista es que en el dictionary cada elemento tiene un nombre propio, una clave / key por la cual referirnos a él.
Para referirnos a un elemento en una lista usamos su posición en la lista, para referirnos a un elemento en una dictionary usamos su nombre, su clave / key.
Para quienes vienen de otros lenguajes de programación, un dictionary es una matriz asociativa.
Para crear un diccionario que almacene varias strings / cadenas de caracteres usaremos el siguiente código:
mi_primer_diccionario = { 'nombre' : "Alain", 'apellido_paterno' : "Garcia", 'apellido_materno' : "Gomez" } # mi_primer_diccionario es el nombre de la variable que almacenará mi dictionary # este es dictionary que almacena strings, cadenas de caracteres # entre llaves estará el contenido de nuestro dictionary { } # el nombre de nuestro elemento, la clave / key, se escribe entre comillas # : los dos puntos asignan el valor a la clave / key # entre comillas va el valor del elemento # cada elemento del dictionary estará separado por una coma ( , ) # la lista almacena strings, por lo que cada string va entre comillas
Es posible crear un dictionary que almacene solo números enteros:
mi_dictionary_de_numeros = { 'id' : 1, 'peso' : 2, 'ancho' : 3, 'alto' : 4, 'precio' : 5, 'existencias' : 6 } # mi_dictionary_de_numeros es el nombre de la variable que almacenará mi dictionary # este es un dictionary que almacena números enteros # entre llaves estará el contenido de nuestro dictionary { } # el nombre de nuestro elemento, la clave / key, se escribe entre comillas # : los dos puntos asignan el valor a la clave / key # entre comillas va el valor del elemento # cada elemento del dictionary estará separado por una coma ( , ) # como cada elemento es un número entero, no necesitamos poner comillas al valor de cada elemento
Es posible crear un dictionary que almacene solo números decimales:
mi_dictionary_con_decimales = { 'peso' : 2.5, 'ancho' : 3.7, 'alto' : 4.5, 'precio' : 5.15, } # mi_dictionary_con_decimales es el nombre de la variable que almacenará mi dictionary # este es un dictionary que almacena números decimales # entre llaves estará el contenido de nuestro dictionary { } # el nombre de nuestro elemento, la clave / key , se escribe entre comillas # : los dos puntos asignan el valor a la clave / key # entre comillas va el valor del elemento # cada elemento del dictionary estará separado por una coma ( , ) # como cada elemento es un número decimal, no necesitamos poner comillas al valor de cada elemento
Es posible crear un dictionary que almacene números enteros, números decimales y strings / cadenas de caracteres:
mi_dictionary_campechano = { 'id' : 1, 'nombre' : "Alain", 'apellido_paterno' : "Garcia", 'apellido_materno' : "Gomez", 'peso' : 84, 'alto' : 1.74, 'calificacion' : 8.5 } # mi_dictionary_campechano es el nombre de la variable que almacenará mi dictionary # este es un dictionary que almacena números enteros, números decimales y strings # entre llaves estará el contenido de nuestro dictionary { } # el nombre de nuestro elemento, la clave / key, se escribe entre comillas # : los dos puntos asignan el valor a la clave / key # cada elemento del dictionary estará separado por una coma ( , ) # si el valor del elemento es un número entero, no necesitamos poner comillas # si el valor del elemento es un string, necesitamos poner comillas # si el valor del elemento es un número decimal, no necesitamos poner comillas
Es posible crear un dictionary que almacene listas:
mi_dictionary_con_listas = { 'portero':["Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"], 'lateral_izquierdo':["Joel Sánchez Ramos",28,1.92,"Pabellón de Arteaga ","044-55-28-43-76-26"], 'contencion':["Duilio Davino",38,1.80,"Rincón de Romos ","044-55-28-43-76-25"], 'defensa_central':["Claudio Suárez",25,1.62,"Escárcega ","044-55-28-43-76-15"], 'lateral_derecho':["Raúl Rodrigo Lara",32,1.90,"San José de Gracia ","044-55-28-43-76-23"], 'mediocampo':["Alberto García Aspe",27,1.94,"San Francisco de los Romo ","044-55-28-43-76-24"], 'volante_derecho':["Germán Villa",27,1.94,"Xpujil ","044-55-28-43-76-21"], 'volante_izquierdo':["Pável Pardo",22,1.84,"Calkiní ","044-55-28-43-76-20"], 'volante_de_enganche':["Ramón Ramírez",26,1.70,"Champotón ","044-55-28-43-76-16"], 'delantero':["Cuauhtémoc Blanco",32,1.68,"Jesús María ","044-55-28-43-76-27"], 'extremo_derecho':["Francisco Palencia",32,1.86,"Campeche ","044-55-28-43-76-19"], 'extremo_izquierdo':["Luis Hernández",37,1.63,"Ciudad del Carmen ","044-55-28-43-76-17"] } # mi_dictionary_con_decimales es el nombre de la variable que almacenará mi dictionary # este es un dictionary que almacena números decimales # entre llaves estará el contenido de nuestro dictionary { } # el nombre de nuestro elemento, la clave / key , se escribe entre comillas # : los dos puntos asignan el valor a la clave / key # entre comillas va el valor del elemento # cada elemento del dictionary estará separado por una coma ( , ) # como cada elemento es un número decimal, no necesitamos poner comillas al valor de cada elemento
Es posible crear una lista que almacene un dictionary en cada elemento:
mi_lista_multidimensional_con_diccionario = [ # el primer elemento de mi list, es un dictionary { # creo un dictionary "nombre": "Jorge Campos", # un elemento de mi dictionary "edad": 34, "estatura": 1.63, "municipio": "Palo Alto", "telefono": "044-55-28-43-76-28", } , # el segundo elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Cuauhtemoc Blanco", "edad": 32, "estatura": 1.68, "municipio": "Jesus Maria", "telefono": "044-55-28-43-76-27", } , # el tercer elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Joel Sanchez Ramos", "edad": 28, "estatura": 1.92, "municipio": "Pabellon de Arteaga", "telefono": "044-55-28-43-76-26", } , # el cuarto elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Duilio Davino", "edad": 38, "estatura": 1.8, "municipio": "Rincon de Romos", "telefono": "044-55-28-43-76-25", } , # el quinto elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Alberto Garcia Aspe", "edad": 27, "estatura": 1.94, "municipio": "San Francisco de los Romo", "telefono": "044-55-28-43-76-24", } ] # mi_lista_multidimensional_con_diccionario es el nombre de la variable que almacenará mi list # este es una list multidimensional que almacenará dictionaries # dentro de la lista anidada creamos un elemento, que será un dictionary cuyo contenido estará entre llaves { } # dentro del dictionary el nombre de nuestro elemento, la clave / key , se escribe entre comillas # : los dos puntos asignan el valor a la clave / key # si es una string entre comillas va el valor del elemento del dictionary # si es un número o decimal no es necesario poner entre comillas el valor del elemento del dictionary # cada elemento del dictionary estará separado por una coma ( , )
Es posible crear un dictionary que almacene otros dictionaries, creando con ello un diccionary multidimensional.
Podemos crear por ejemplo un dictionary multidimensional que almacene la información de los alumnos de una escuela y que incluya el nombre, la edad, la estatura, el grado, la ciudad de origen y el teléfono.
lista_de_alumnos = { 'jugador_1':{ 'nombre': 'Jorge Campos', 'edad': 34, 'estatura': 1.63, 'municipio': 'Palo Alto ', 'telefono': '044-55-28-43-76-28' }, 'jugador_2':{ 'nombre': 'Cuauhtémoc Blanco', 'edad': 32, 'estatura': 1.68, 'municipio': 'Jesús María ', 'telefono': '044-55-28-43-76-27' }, 'jugador_3':{ 'nombre': 'Joel Sánchez Ramos', 'edad': 28, 'estatura': 1.92, 'municipio': 'Pabellón de Arteaga ', 'telefono': '044-55-28-43-76-26' }, 'jugador_4':{ 'nombre': 'Duilio Davino', 'edad': 38, 'estatura': 1.8, 'municipio': 'Rincón de Romos ', 'telefono': '044-55-28-43-76-25' }, 'jugador_5':{ 'nombre': 'Alberto García Aspe', 'edad': 27, 'estatura': 1.94, 'municipio': 'San Francisco de los Romo ', 'telefono': '044-55-28-43-76-24' }, 'jugador_6':{ 'nombre': 'Raúl Rodrigo Lara', 'edad': 32, 'estatura': 1.9, 'municipio': 'San José de Gracia ', 'telefono': '044-55-28-43-76-23' }, 'jugador_7':{ 'nombre': 'Jaime Ordiales', 'edad': 35, 'estatura': 1.73, 'municipio': 'Tepezalá ', 'telefono': '044-55-28-43-76-22' }, 'jugador_8':{ 'nombre': 'Germán Villa', 'edad': 27, 'estatura': 1.94, 'municipio': 'Xpujil ', 'telefono': '044-55-28-43-76-21' }, 'jugador_9':{ 'nombre': 'Pável Pardo', 'edad': 22, 'estatura': 1.84, 'municipio': 'Calkiní ', 'telefono': '044-55-28-43-76-20' }, 'jugador_10':{ 'nombre': 'Francisco Palencia', 'edad': 32, 'estatura': 1.86, 'municipio': 'Campeche ', 'telefono': '044-55-28-43-76-19' }, 'jugador_11':{ 'nombre': 'Jesús Arellano', 'edad': 19, 'estatura': 1.97, 'municipio': 'Candelaria ', 'telefono': '044-55-28-43-76-18' }, 'jugador_12':{ 'nombre': 'Luis Hernández', 'edad': 37, 'estatura': 1.63, 'municipio': 'Ciudad del Carmen ', 'telefono': '044-55-28-43-76-17' }, 'jugador_13':{ 'nombre': 'Ramón Ramírez', 'edad': 26, 'estatura': 1.7, 'municipio': 'Champotón ', 'telefono': '044-55-28-43-76-16' }, 'jugador_14':{ 'nombre': 'Claudio Suárez', 'edad': 25, 'estatura': 1.62, 'municipio': 'Escárcega ', 'telefono': '044-55-28-43-76-15' } } # lista_de_alumnos es el nombre de la variable que almacenará mi dictionary multidimentsional # este es una dictionary que almacena otros dictionaries... # entre llaves estará el contenido de nuestro dictionary { } # el nombre de nuestro elemento, la clave / key , se escribe entre comillas # : los dos puntos asignan el valor a la clave / key # entre comillas va el valor del elemento # cada elemento del dictionary estará separado por una coma ( , ) # dentro del dictionary , hay mas dictionaries. # el contenido de cada dictionary está entre llaves {} # el nombre de nuestro elemento, la clave / key , se escribe entre comillas # : los dos puntos asignan el valor a la clave / key # los números decimales y enteros no necesitan estar entre comillas # las strings van ente comillas
Una vez creado el dictionary, podemos tener acceso a los valores que almacena.
Para recuperar un elemento del dictionary utilizaremos el codigo:.
nombre_del_dictionary["nombre_del_elemento_en_el_dictionary"]
Ejemplo:
# creamos un dictionary lista_de_alumnos = { 'id' : 1, 'nombre' : "Alain", 'apellido_paterno' : "Garcia", 'apellido_materno' : "Gomez", 'peso' : 84, 'alto' : 1.74, 'calificacion' : 8.5 } #una vez creado el dictionary recuperamos un elemento con: lista_de_alumnos["nombre"] # muestra en pantalla: Alain lista_de_alumnos["apellido_paterno"] # muestra en pantalla: García lista_de_alumnos["apellido_materno"] # muestra en pantalla: Gómez
Si utilizamos una clave / key que no existe en el dictionary, Python marcará error.
# creamos un dictionary lista_de_alumnos = { 'id' : 1, 'nombre' : "Alain", 'apellido_paterno' : "Garcia", 'apellido_materno' : "Gomez", 'peso' : 84, 'alto' : 1.74, 'calificacion' : 8.5 } lista_de_alumnos["nacionalidad"] # !no existe la clave / key nacionalidad en el dictionary¡ # Python marcara error
Para recuperar un elemento de un dictionary que almacene lists podemos utilizar el siguiente código:
nombre_del_dictionary[clave]
Ejemplo:
mi_dictionary_con_listas = { 'portero':["Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"], 'lateral_izquierdo':["Joel Sánchez Ramos",28,1.92,"Pabellón de Arteaga ","044-55-28-43-76-26"], 'contencion':["Duilio Davino",38,1.80,"Rincón de Romos ","044-55-28-43-76-25"], 'defensa_central':["Claudio Suárez",25,1.62,"Escárcega ","044-55-28-43-76-15"], 'lateral_derecho':["Raúl Rodrigo Lara",32,1.90,"San José de Gracia ","044-55-28-43-76-23"], 'mediocampo':["Alberto García Aspe",27,1.94,"San Francisco de los Romo ","044-55-28-43-76-24"], 'volante_derecho':["Germán Villa",27,1.94,"Xpujil ","044-55-28-43-76-21"], 'volante_izquierdo':["Pável Pardo",22,1.84,"Calkiní ","044-55-28-43-76-20"], 'volante_de_enganche':["Ramón Ramírez",26,1.70,"Champotón ","044-55-28-43-76-16"], 'delantero':["Cuauhtémoc Blanco",32,1.68,"Jesús María ","044-55-28-43-76-27"], 'extremo_derecho':["Francisco Palencia",32,1.86,"Campeche ","044-55-28-43-76-19"], 'extremo_izquierdo':["Luis Hernández",37,1.63,"Ciudad del Carmen ","044-55-28-43-76-17"] } mi_dictionary_con_listas['portero'] # muestra en pantalla: ['Jorge Campos', 34, 1.63, 'Palo Alto ', '044-55-28-43-76-28']
Para recuperar el valor de un elemento de una lista dentro de un diccionary podemos utilizar el siguiente código:
nombre_del_dictionary[clave][numero_de_elemento_en_la_lista]
En el siguiente ejemplo se muestra como podemos acceder a un elemento en específico de la lista dentro del diccionary. Para ello hacemos referencia al número de elemento dentro de la lista. Ejemplo:
mi_dictionary_con_listas = { 'portero':["Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"], 'lateral_izquierdo':["Joel Sánchez Ramos",28,1.92,"Pabellón de Arteaga ","044-55-28-43-76-26"], 'contencion':["Duilio Davino",38,1.80,"Rincón de Romos ","044-55-28-43-76-25"], 'defensa_central':["Claudio Suárez",25,1.62,"Escárcega ","044-55-28-43-76-15"], 'lateral_derecho':["Raúl Rodrigo Lara",32,1.90,"San José de Gracia ","044-55-28-43-76-23"], 'mediocampo':["Alberto García Aspe",27,1.94,"San Francisco de los Romo ","044-55-28-43-76-24"], 'volante_derecho':["Germán Villa",27,1.94,"Xpujil ","044-55-28-43-76-21"], 'volante_izquierdo':["Pável Pardo",22,1.84,"Calkiní ","044-55-28-43-76-20"], 'volante_de_enganche':["Ramón Ramírez",26,1.70,"Champotón ","044-55-28-43-76-16"], 'delantero':["Cuauhtémoc Blanco",32,1.68,"Jesús María ","044-55-28-43-76-27"], 'extremo_derecho':["Francisco Palencia",32,1.86,"Campeche ","044-55-28-43-76-19"], 'extremo_izquierdo':["Luis Hernández",37,1.63,"Ciudad del Carmen ","044-55-28-43-76-17"] } mi_dictionary_con_listas['portero'] # muestra en pantalla: ['Jorge Campos', 34, 1.63, 'Palo Alto ', '044-55-28-43-76-28'] mi_dictionary_con_listas['portero'][0] # muestra en pantalla: Jorge Campos mi_dictionary_con_listas['portero'][3] # muestra en pantalla: Palo Alto mi_dictionary_con_listas['portero'][4] # muestra en pantalla: 044-55-28-43-76-28
Si tenemos una lista multidimensional que almacene varios dictionaries, también podemos recuperar su información. Ejemplo:
# creamos una lista multidimensional mi_lista_multidimensional_con_diccionario = [ # el primer elemento de mi list, es un dictionary { # creo un dictionary "nombre": "Jorge Campos", # un elemento de mi dictionary "edad": 34, "estatura": 1.63, "municipio": "Palo Alto", "telefono": "044-55-28-43-76-28", } , # el segundo elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Cuauhtemoc Blanco", "edad": 32, "estatura": 1.68, "municipio": "Jesus Maria", "telefono": "044-55-28-43-76-27", } , # el tercer elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Joel Sanchez Ramos", "edad": 28, "estatura": 1.92, "municipio": "Pabellon de Arteaga", "telefono": "044-55-28-43-76-26", } , # el cuarto elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Duilio Davino", "edad": 38, "estatura": 1.8, "municipio": "Rincon de Romos", "telefono": "044-55-28-43-76-25", } , # el quinto elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Alberto Garcia Aspe", "edad": 27, "estatura": 1.94, "municipio": "San Francisco de los Romo", "telefono": "044-55-28-43-76-24", } ] mi_lista_multidimensional_con_diccionario[0] # recuperaramos el elemento 0 de la lista multidimensional # muestra en pantalla: # {'municipio': 'Palo Alto', 'estatura': 1.63, 'edad': 34, 'nombre': 'Jorge Campos', 'telefono': '044-55-28-43-76-28'} mi_lista_multidimensional_con_diccionario[0]['nombre'] #con el primer [0] recuperaramos el elemento 0 de la lista multidimensional # dentro de ese elemento 0, otra lista, recuperamos el primer elemento con el segundo [0] # en ese momento tenemos ya acceso al dictionary y sus elementos # con ['nombre'] recuperamos el valor de un elemento del dictionary, en este caso el nombre # muestra en pantalla: # 'Jorge Campos' mi_lista_multidimensional_con_diccionario[1]['nombre'] #con el primer [1] recuperaramos el elemento 1 de la lista multidimensional # dentro de ese elemento 1, otra lista, recuperamos el primer elemento con el segundo [0] # en ese momento tenemos ya acceso al dictionary y sus elementos # con ['nombre'] recuperamos el valor de un elemento del dictionary, en este caso el nombre # muestra en pantalla: # 'Cuauhtemoc Blanco'
Para saber cuantos elementos integran un dictionary, utilizamos la función LEN:
len(nombre_del_dictionary)
Ejemplo:
mi_dictionary_campechano = { 'id' : 1, 'nombre' : "Alain", 'apellido_paterno' : "Garcia", 'apellido_materno' : "Gomez", 'peso' : 84, 'alto' : 1.74, 'calificacion' : 8.5 } total_elementos = len(mi_dictionary_campechano) # creamos la variable total_elementos # almacenamos en ella el resultado de la función len # len cuenta la cantidad de elementos en el dictionary print(total_elementos) # muestra en pantalla 14... # el dictionary tiene 14 elementos
Para saber cuantos elementos integran un dictionary multidimensional, utilizamos la función:
len(nombre_del_dictionary)
Ejemplo:
# creamos una dicitonary multidimensional lista_de_alumnos = { 'jugador_1':{ 'nombre': 'Jorge Campos', 'edad': 34, 'estatura': 1.63, 'municipio': 'Palo Alto ', 'telefono': '044-55-28-43-76-28' }, 'jugador_2':{ 'nombre': 'Cuauhtémoc Blanco', 'edad': 32, 'estatura': 1.68, 'municipio': 'Jesús María ', 'telefono': '044-55-28-43-76-27' }, 'jugador_3':{ 'nombre': 'Joel Sánchez Ramos', 'edad': 28, 'estatura': 1.92, 'municipio': 'Pabellón de Arteaga ', 'telefono': '044-55-28-43-76-26' } } total_elementos = len(lista_de_alumnos) # creamos la variable total_elementos # almacenamos en ella el resultado de la función len # len cuenta la cantidad de elemetos en el dictionary print(total_elementos) # muestra en pantalla 3... # el dictionary tiene 3 elementos
Es posible hacer una iteración en una dictionary con la ayuda de la función de control de flujo FOR.
Para hacer una iteración en una dictionary utilizaremos el codigo:.
for elemento in mi_diccionario.values(): print(elemento)
Ejemplo:
mi_dictionary_campechano = { 'id' : 1, 'nombre' : "Alain", 'apellido_paterno' : "Garcia", 'apellido_materno' : "Gomez", 'peso' : 84, 'alto' : 1.74, 'calificacion' : 8.5 } for elemento in mi_dictionary_campechano.values(): # hacemos una iteración elemento por elemento en nuestra lista # elemento es una variable que almacena el valor del elemento # for es una función de control de flujo # for hace la iteración elemento por elemento # in permite definir que lista usaremos # lista_de_alumnos es la lista donde haremos la iteración # : inicia nuestra función de control de flujo #muy importante, creamos una sangía para el contenido # de la función de control de flujo print(elemento) # cada elemento lo mostramos en pantalla
De igual manera es posible hacer una iteración en una lista multidimensional que almacena varios dictionaries con la ayuda de la función de control de flujo FOR.
Ejemplo:
# creamos una lista multidimensional mi_lista_multidimensional_con_diccionario = [ # el primer elemento de mi list, es un dictionary { # creo un dictionary "nombre": "Jorge Campos", # un elemento de mi dictionary "edad": 34, "estatura": 1.63, "municipio": "Palo Alto", "telefono": "044-55-28-43-76-28", } , # el segundo elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Cuauhtemoc Blanco", "edad": 32, "estatura": 1.68, "municipio": "Jesus Maria", "telefono": "044-55-28-43-76-27", } , # el tercer elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Joel Sanchez Ramos", "edad": 28, "estatura": 1.92, "municipio": "Pabellon de Arteaga", "telefono": "044-55-28-43-76-26", } , # el cuarto elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Duilio Davino", "edad": 38, "estatura": 1.8, "municipio": "Rincon de Romos", "telefono": "044-55-28-43-76-25", } , # el quinto elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Alberto Garcia Aspe", "edad": 27, "estatura": 1.94, "municipio": "San Francisco de los Romo", "telefono": "044-55-28-43-76-24", } ] for elemento in mi_lista_multidimensional_con_diccionario: print("Nombre: " + str(elemento['nombre'])) print("Edad: " + str(elemento['edad'])) print("Estatura: " + str(elemento['estatura'])) print("Municipio: " + str(elemento['municipio'])) print("Telefono: " + str(elemento['telefono'])) print(" - - - - - - - - - - - - - - - - - - - - - ")
Un dolor de cabeza al programar en python, sobre todo para los que vienen de otros lenguajes de programación, son los espacios, sangrías, tabulaciones y saltos de línea para definir el contenido de las funciones y funciones de control de flujo.
Python no utiliza { } para definir el contenido de las funciones y funciones de control de flujo. Python utiliza sangrías / tabulaciones / espacios y saltos de línea.
Una sangría / tabulación / espacio o salto de línea mal colocados implicaría que nuestro código no haga nada, produzca un error u ofrezca un resultado completamente diferente.
Tómese como referencia el siguiente ejemplo:
lista_de_alumnos = [ "Jorge Campos", "Alberto García Aspe", "Claudio Suárez", "Cuauhtémoc Blanco", "Duilio Davino", "Francisco Palencia", "Germán Villa", "Jaime Ordiales", "Jesús Arellano", "Joel Sánchez Ramos", "Luis Hernández", "Pável Pardo", "Ramón Ramírez", "Raúl Rodrigo Lara", ] for elemento in lista_de_alumnos: print(elemento)
Y su resultado:
¿Qué fué lo que pasó?
¿Por qué marco error?
¿Por qué no hizo la iteración?
Cuál es la diferencia entre este código:
lista_de_alumnos = [ "Jorge Campos", "Alberto García Aspe", "Claudio Suárez", "Cuauhtémoc Blanco", "Duilio Davino", "Francisco Palencia", "Germán Villa", "Jaime Ordiales", "Jesús Arellano", "Joel Sánchez Ramos", "Luis Hernández", "Pável Pardo", "Ramón Ramírez", "Raúl Rodrigo Lara", ] for elemento in lista_de_alumnos: print(elemento)
Y este otro código:
lista_de_alumnos = [ "Jorge Campos", "Alberto García Aspe", "Claudio Suárez", "Cuauhtémoc Blanco", "Duilio Davino", "Francisco Palencia", "Germán Villa", "Jaime Ordiales", "Jesús Arellano", "Joel Sánchez Ramos", "Luis Hernández", "Pável Pardo", "Ramón Ramírez", "Raúl Rodrigo Lara", ] for elemento in lista_de_alumnos: print(elemento)
La diferencia es la sangría / tabulación / espacio o salto de línea que python utiliza para definir el contenido de las funciones y funciones de control de flujo.
Una sangría / tabulación / espacio o salto de línea mal colocados implicaría que nuestro código no haga nada, produzca un error u ofrezca un resultado completamente diferente.
Supongamos que tenemos una lista multidimensional con los datos de los alumnos y queremos hacer una iteración para mostrarlos.
Podríamos usar el siguiente código:
lista_de_alumnos = [ ["Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"], ["Cuauhtemoc Blanco",32,1.68,"Jesus Maria ","044-55-28-43-76-27"], ["Joel Sanchez Ramos",28,1.92,"Pabellon de Arteaga ","044-55-28-43-76-26"], ["Duilio Davino",38,1.80,"Rincon de Romos ","044-55-28-43-76-25"], ["Alberto Garcia Aspe",27,1.94,"San Francisco de los Romo ","044-55-28-43-76-24"], ] for elemento in lista_de_alumnos: print("Nombre: " + str(elemento[0])) print("Edad: " + str(elemento[1])) print("Estatura: " + str(elemento[2])) print("Municipio: " + str(elemento[3])) print("Telefono: " + str(elemento[4]))
¡Funciona!
Pero si omitimos una tabulación / espacio / sangría.
lista_de_alumnos = [ ["Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"], ["Cuauhtemoc Blanco",32,1.68,"Jesus Maria ","044-55-28-43-76-27"], ["Joel Sanchez Ramos",28,1.92,"Pabellon de Arteaga ","044-55-28-43-76-26"], ["Duilio Davino",38,1.80,"Rincon de Romos ","044-55-28-43-76-25"], ["Alberto Garcia Aspe",27,1.94,"San Francisco de los Romo ","044-55-28-43-76-24"], ] for elemento in lista_de_alumnos: print("Nombre: " + str(elemento[0])) print("Edad: " + str(elemento[1])) print("Estatura: " + str(elemento[2])) print("Municipio: " + str(elemento[3])) print("Telefono: " + str(elemento[4]))
¡Se acabó la magia!
Para buscar un valor en un dictionary, utilizamos el comando IN acompañado de la función values():
valor_a_buscar in nombre_del_dictionary.values()
Ejemplo:
mi_dictionary_de_numeros = { 'id' : 1, 'peso' : 2, 'ancho' : 3, 'alto' : 4, 'precio' : 5, 'existencias' : 6 } 6 in mi_dictionary_de_numeros.values() # buscal el valor 6 en el dictionary mi_dictionary_de_numeros # resultado, true / verdadero # el 6 está en el dictionary 15 in mi_dictionary_de_numeros.values() # buscal el valor 15 en el dictionary mi_dictionary_de_numeros # resultado, false / falso # el 15 NO ESTÁ en el dictionary
Podemos buscar strings / cadenas de caracteres, en nuestro dictionary:
mi_dictionary_campechano = { 'id' : 1, 'nombre' : "Alain", 'apellido_paterno' : "Garcia", 'apellido_materno' : "Gomez", 'peso' : 84, 'alto' : 1.74, 'calificacion' : 8.5 } "Alain" in mi_dictionary_campechano.values() # buscal el valor "Alain" en mi_dictionary_campechano # resultado, true / verdadero # el valor "Alain" está en el dictionary "Raúl Alonso Jiménez" in mi_dictionary_campechano.values() # buscal el valor "Raúl Alonso Jiménez" en mi_dictionary_campechano # resultado, false / falso # el valor "Raúl Alonso Jiménez" NO ESTÁ en el dictionary
Si queremos buscar una clave / key en un dictionary, utilizamos el comando IN con la función keys() :
clave_a_buscar in nombre_del_dictionary.keys()
Ejemplo:
mi_dictionary_campechano = { 'id' : 1, 'nombre' : "Alain", 'apellido_paterno' : "Garcia", 'apellido_materno' : "Gomez", 'peso' : 84, 'alto' : 1.74, 'calificacion' : 8.5 } "id" in mi_dictionary_campechano.keys() # busca la clave / key llamada id en mi_dictionary_campechano # resultado, true / verdadero # la clave / key llamada id está en el dictionary "nacionalidad" in mi_dictionary_campechano.keys() # busca la clave / key llamada nacionalidad en mi_dictionary_campechano # resultado, FALSE / FALSO # la clave / key llamada nacionalidad NO ESTÁ en el dictionary
Para buscar un valor en un diccionario dentro de una lista, utilizamos el comando IN junto con la función de control de flujo FOR. FOR nos permite hacer una iteración elemento por elemento de la list / lista.
Ejemplo:
# creamos una lista que almacena dictionaries mi_lista_con_diccionario = [ # el primer elemento de mi list, es un dictionary { # creo un dictionary "nombre": "Jorge Campos", # un elemento de mi dictionary "edad": 34, "estatura": 1.63, "municipio": "Palo Alto", "telefono": "044-55-28-43-76-28", } , # el segundo elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Cuauhtemoc Blanco", "edad": 32, "estatura": 1.68, "municipio": "Jesus Maria", "telefono": "044-55-28-43-76-27", } , # el tercer elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Joel Sanchez Ramos", "edad": 28, "estatura": 1.92, "municipio": "Pabellon de Arteaga", "telefono": "044-55-28-43-76-26", } , # el cuarto elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Duilio Davino", "edad": 38, "estatura": 1.8, "municipio": "Rincon de Romos", "telefono": "044-55-28-43-76-25", } , # el quinto elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Alberto Garcia Aspe", "edad": 27, "estatura": 1.94, "municipio": "San Francisco de los Romo", "telefono": "044-55-28-43-76-24", } ] for elemento in mi_lista_con_diccionario: # para cada dictionary anidado haremos: if "Alberto Garcia Aspe" in elemento.values() : # si hay un elemento con el valor Alberto Garcia Aspe print(elemento) # lo mostramos en pantalla
Para agregar un elemento a un dictionary utilizamos la función UPDATE:
mi_dictionary.update({"nueva_clave":"nuevo_valor"})
Ejemplo:
mi_dictionary_campechano = { 'id' : 1, 'nombre' : "Alain", 'apellido_paterno' : "Garcia", 'apellido_materno' : "Gomez", 'peso' : 84, 'alto' : 1.74, 'calificacion' : 8.5 } mi_dictionary_campechano.update({"edad":41}) # agrega la llave / key nacionalidad con el valor mexicana mi_dictionary_campechano # muestra en pantalla: # {'edad': 41, 'apellido_paterno': 'Garcia', 'nombre': 'Alain', 'peso': 84, 'id': 1, 'alto': 1.74, 'apellido_materno': 'Gomez', 'calificacion': 8.5}
La misma lógica aplica si queremos agregar un string / cadena de caracteres a nuestro dictionary:
mi_dictionary_campechano = { 'id' : 1, 'nombre' : "Alain", 'apellido_paterno' : "Garcia", 'apellido_materno' : "Gomez", 'peso' : 84, 'alto' : 1.74, 'calificacion' : 8.5 } mi_dictionary_campechano.update({"nacionalidad":"mexicana"}) # agrega la llave / key nacionalidad con el valor mexicana mi_dictionary_campechano # muestra en pantalla: # {'nacionalidad': 'mexicana', 'apellido_paterno': 'Garcia', 'nombre': 'Alain', 'peso': 84, 'id': 1, 'alto': 1.74, 'apellido_materno': 'Gomez', 'calificacion': 8.5}
Para eliminar un elemento en un dictionary utilizamos la función DEL:
del mi_dictionary[clave_a_borrar]
Ejemplo:
mi_dictionary_campechano = { 'id' : 1, 'nombre' : "Alain", 'apellido_paterno' : "Garcia", 'apellido_materno' : "Gomez", 'peso' : 84, 'alto' : 1.74, 'calificacion' : 8.5 } del mi_dictionary_campechano['nombre'] # elimina el elemento cuyo valor sea 1 mi_dictionary_campechano #mostrara en pantalla: # {'apellido_paterno': 'Garcia', 'peso': 84, 'id': 1, 'alto': 1.74, 'apellido_materno': 'Gomez', 'calificacion': 8.5}
Para modificar el valor de un elemento en un dictionary utilizamos el siguiente código:
mi_dictionary[clave_a_modificar] = nuevo_valor
Ejemplo:
mi_dictionary_campechano = { 'id' : 1, 'nombre' : "Alain", 'apellido_paterno' : "Garcia", 'apellido_materno' : "Gomez", 'peso' : 84, 'alto' : 1.74, 'calificacion' : 8.5 } mi_dictionary_campechano['id']=41 #Actualizamos el valor del elemento cuya clave / key es id # reemplazamos el valor original 1 con 41 mi_dictionary_campechano['id'] #muestra 41 mi_dictionary_campechano #muestra el dictionary actualizado
La misma lógica se aplica para una lista multidimensional que almacena dictionaries. Sólo es necesario precisar el elemento a actualizar:
mi_lista[diccionario_a_modificar][clave_a_modificar] = nuevo_valor
Ejemplo:
mi_lista_con_diccionario = [ # el primer elemento de mi list, es un dictionary { # creo un dictionary "nombre": "Jorge Campos", # un elemento de mi dictionary "edad": 34, "estatura": 1.63, "municipio": "Palo Alto", "telefono": "044-55-28-43-76-28", } , # el segundo elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Cuauhtemoc Blanco", "edad": 32, "estatura": 1.68, "municipio": "Jesus Maria", "telefono": "044-55-28-43-76-27", } , # el tercer elemento de mi list, es otro dictionary { # creo un dictionary "nombre": "Joel Sanchez Ramos", "edad": 28, "estatura": 1.92, "municipio": "Pabellon de Arteaga", "telefono": "044-55-28-43-76-26", } ] mi_lista_con_diccionario[0]['nombre'] = "Oscar 'El Conejo' Perez" #Actualizamos el primer dictionary dentro de la lista # reemplazamos el valor original Jorge Campos con Oscar 'El Conejo' Perez mi_lista_con_diccionario[0]['nombre'] # muestra Oscar 'El Conejo' Perez mi_lista_con_diccionario[0]['telefono'] = "01-800-4-33-20-00" #Actualizamos el primer dictionary dentro de la lista # reemplazamos el valor original Jorge Campos con Oscar 'El Conejo' Perez mi_lista_con_diccionario[0]['telefono'] # muestra "01-800-4-33-20-00"
Para copiar un dictionary necesitamos importar el módulo / librería COPY y luego utilizamos la función DEEPCOPY:
import copy #importar el módulo / librería COPY mi_dictionary_copiado = copy.deepcopy(mi_dictionary)
Ejemplo:
import copy mi_dictionary= { 'id' : 1, 'nombre' : "Alain", 'apellido_paterno' : "Garcia", 'apellido_materno' : "Gomez", 'peso' : 84, 'alto' : 1.74, 'calificacion' : 8.5 } mi_dictionary_copia = copy.deepcopy(mi_dictionary) # copiamos la lista en una nueva lista mi_dictionary_copia["id"] # recuperarmos el valor del primer elemento de la lista copiada # muestra 1 mi_dictionary["id"] # recuperarmos el valor del primer elemento de la lista original # muestra 1
Este ejemplo es parte de un tutorial más completo que puede consultarse:
Comenta y opina este texto Lee mi libro de visitas
© 1997-2024 Alain García
albegago@hotmail.com
Twitter: @feesgo
YouTube
El vínculo a este documento es:
http://www.alaingarcia.net/weird/python_04_dictionaries_diccionarios.php
Puedes apoyar a este sitio invitándome a comer...
Este sitio utiliza cookies propias y de terceros para mejorar sus servicios. Si continua navegando, entendemos que acepta su uso. Política de Privacidad