Listas / lists en python

8 de julio 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.

Listas / lists en python

Las listas / lists nos permiten almacenar varios valores en una variable. Los valores almacenados pueden ser números enteros, números decimales, strings / cadenas de caracteres, otras listas... Cada valor es un elemento / element.

Para crear una lista que almacene varias strings / cadenas de caracteres usaremos el siguiente código:

mi_primera_lista = [
"Alain",
"Benjamin",
"Garcia",
"Gomez"
]

# mi_primera_lista es el nombre de la variable que almacenará mi lista
# esta es una lista que almacena strings, cadenas de caracteres
# entre  corchetes cuadrados estará el contenido de nuestra lista[ ]
# cada elemento de la lista estará separado por una coma  ( , )
# la lista almacena strings, por lo que cada string va entre comillas

Es posible crear una lista que almacene solo números enteros:

mi_lista_de_numeros = [
1,
2,
3,
4,
5,
6]

# mi_lista_de_numeros es el nombre de la variable que almacenará mi lista
# esta es una lista que almacena números enteros
# entre  corchetes cuadrados estará el contenido de nuestra lista[ ]
# cada elemento de la lista estará separado por una coma  ( , )
# como cada elemento es un número entero, no necesitamos poner comillas para cada elemento

Es posible crear una lista que almacene solo números decimales:

mi_lista_con_decimales = [
1.5,
2.3,
3.7,
4.8,
5.8,
6.8
]

# mi_lista_con_decimales es el nombre de la variable que almacenará mi lista
# esta es una lista que almacena números enteros
# entre  corchetes cuadrados estará el contenido de nuestra lista[ ]
# cada elemento de la lista estará separado por una coma  ( , )
# como cada elemento es un número decimal, no necesitamos poner comillas para cada elemento

Es posible crear una lista que almacene números enteros, números decimales y strings / cadenas de caracteres:

mi_lista_campechana = [
1.5,
2,
"El América ha ganado 37 campeonatos en torneos nacionales e internacionales"
]

# mi_lista_campechana es el nombre de la variable que almacenará mi lista
# esta es una lista que almacena números enteros, números decimales y strings
# entre  corchetes cuadrados estará el contenido de nuestra lista[ ]
# cada elemento de la lista estará separado por una coma  ( , )
# los números decimales y enteros no necesitan estar entre comillas
# las strings van ente comillas

Listas / lists multidimensionales en python

Es posible crear una lista que almacene otras listas, creando con ello una lista multidimensional.

Podemos crear por ejemplo una lista 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 = [
 ["Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"],
["Cuauhtémoc Blanco",32,1.68,"Jesús María ","044-55-28-43-76-27"],
["Joel Sánchez Ramos",28,1.92,"Pabellón de Arteaga ","044-55-28-43-76-26"],
["Duilio Davino",38,1.80,"Rincón de Romos ","044-55-28-43-76-25"],
["Alberto García Aspe",27,1.94,"San Francisco de los Romo ","044-55-28-43-76-24"],
["Raúl Rodrigo Lara",32,1.90,"San José de Gracia ","044-55-28-43-76-23"],
["Jaime Ordiales",35,1.73,"Tepezalá ","044-55-28-43-76-22"],
["Germán Villa",27,1.94,"Xpujil ","044-55-28-43-76-21"],
["Pável Pardo",22,1.84,"Calkiní ","044-55-28-43-76-20"],
["Francisco Palencia",32,1.86,"Campeche ","044-55-28-43-76-19"],
["Jesús Arellano",19,1.97,"Candelaria ","044-55-28-43-76-18"],
["Luis Hernández",37,1.63,"Ciudad del Carmen ","044-55-28-43-76-17"],
["Ramón Ramírez",26,1.70,"Champotón ","044-55-28-43-76-16"],
["Claudio Suárez",25,1.62,"Escárcega ","044-55-28-43-76-15"]

]

# lista_de_alumnos es el nombre de la variable que almacenará mi lista multidimentsional
# esta es una lista que almacena otras listas...
# entre  corchetes cuadrados estará el contenido de nuestra lista[ ]
# dentro de la lista, hay mas listas.
# el contenido de cada lista está entre  corchetes cuadrados [ ]
# cada elemento de la lista estará separado por una coma  ( , )
# los números decimales y enteros no necesitan estar entre comillas
# las strings van ente comillas

Leer los valores de una lista

Una vez creada la lista, podemos tener acceso a los valores que almacena.

Automáticamente al crear una lista se crea un índice que relaciona los elementos que integran la lista.

Ese índice asigna el valor 0 al primer elemento de la lista y asigna posteriormente un número consecutivo a cada uno de los elementos hasta abarcar todos los elementos.

De esta manera, con ayuda de ese índice podemos recuperar el valor de cualquier elemento de la lista.

Para recuperar un elemento de la lista utilizaremos el codigo:.

nombre_de_la_lista[numero_del_elemento_en_la_lista]

Ejemplo:


# creamos una lista
# a cada elemento automáticamente secrea un índice
lista_de_alumnos = [
"Jorge Campos",# el elemento 0 de la lista
"Alberto García Aspe",# el elemento 1 de la lista
"Claudio Suárez",# el elemento 2 de la lista
"Cuauhtémoc Blanco",# el elemento 3 de la lista
"Duilio Davino",# el elemento 4 de la lista
"Francisco Palencia",# el elemento 5 de la lista
"Germán Villa",# el elemento 6 de la lista
"Jaime Ordiales",# el elemento 7 de la lista
"Jesús Arellano",# el elemento 8 de la lista
"Joel Sánchez Ramos",# el elemento 9 de la lista
"Luis Hernández",# el elemento 10 de la lista
"Pável Pardo",# el elemento 11 de la lista
"Ramón Ramírez",# el elemento 12 de la lista
"Raúl Rodrigo Lara",# el elemento 13 de la lista
]


#una vez creada la lista  recuperamos un elemento de la lista con:

lista_de_alumnos[0]
# muestra en pantalla: Jorge Campos

lista_de_alumnos[13]
# muestra en pantalla: Raúl Rodrigo Lara


Si utilizamos un número de elemento que no existe en la lista, Python marcará error.


lista_de_alumnos = [
"Jorge Campos",# el elemento 0 de la lista
"Alberto García Aspe",# el elemento 1 de la lista
"Claudio Suárez",# el elemento 2 de la lista
"Cuauhtémoc Blanco",# el elemento 3 de la lista
"Duilio Davino",# el elemento 4 de la lista
"Francisco Palencia",# el elemento 5 de la lista
"Germán Villa",# el elemento 6 de la lista
"Jaime Ordiales",# el elemento 7 de la lista
"Jesús Arellano",# el elemento 8 de la lista
"Joel Sánchez Ramos",# el elemento 9 de la lista
"Luis Hernández",# el elemento 10 de la lista
"Pável Pardo",# el elemento 11 de la lista
"Ramón Ramírez",# el elemento 12 de la lista
"Raúl Rodrigo Lara",# el elemento 13 de la lista
]


lista_de_alumnos[14]
# !no existe el elemento 14 en la lista¡
# Python marcara error

Si utilizamos un número de elemento que no existe en la lista, Python marcará error.

Para recuperar un elemento de una lista multidimensional utilizaremos el codigo:

nombre_de_la_lista[numero_del_elemento_en_la_lista]

Ejemplo:

# creamos una lista multidimensional
lista_de_alumnos = [
 ["Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"],
["Cuauhtémoc Blanco",32,1.68,"Jesús María ","044-55-28-43-76-27"],
["Joel Sánchez Ramos",28,1.92,"Pabellón de Arteaga ","044-55-28-43-76-26"],
["Duilio Davino",38,1.80,"Rincón de Romos ","044-55-28-43-76-25"],
["Alberto García Aspe",27,1.94,"San Francisco de los Romo ","044-55-28-43-76-24"],
["Raúl Rodrigo Lara",32,1.90,"San José de Gracia ","044-55-28-43-76-23"],
["Jaime Ordiales",35,1.73,"Tepezalá ","044-55-28-43-76-22"],
["Germán Villa",27,1.94,"Xpujil ","044-55-28-43-76-21"],
["Pável Pardo",22,1.84,"Calkiní ","044-55-28-43-76-20"],
["Francisco Palencia",32,1.86,"Campeche ","044-55-28-43-76-19"],
["Jesús Arellano",19,1.97,"Candelaria ","044-55-28-43-76-18"],
["Luis Hernández",37,1.63,"Ciudad del Carmen ","044-55-28-43-76-17"],
["Ramón Ramírez",26,1.70,"Champotón ","044-55-28-43-76-16"],
["Claudio Suárez",25,1.62,"Escárcega ","044-55-28-43-76-15"]

]

# lista_de_alumnos es el nombre de la variable que almacenará mi lista multidimentsional
# esta es una lista que almacena otras listas...
# entre  corchetes cuadrados estará el contenido de nuestra lista[ ]
# dentro de la lista, hay mas listas.
# el contenido de cada lista está entre  corchetes cuadrados [ ]
# cada elemento de la lista estará separado por una coma  ( , )
# los números decimales y enteros no necesitan estar entre comillas
# las strings van ente comillas


# recuperaramos el elemento 0 de la lista multidimensional


lista_de_alumnos[0] 
# muestra en pantalla: "Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"

Para recuperar un elemento de una lista  multidimensional utilizaremos el codigo nombre_de_la_lista[numero_del_elemento_en_la_lista]

Cada elemento de una lista multidimensional, que a su vez es una lista, tiene un comportamiento idéntico a una lista. Así que podemos acceder a un elemento en específico de la lista multidimensional. Ejemplo:

# creamos una lista multidimensional
lista_de_alumnos = [
 ["Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"],
["Cuauhtémoc Blanco",32,1.68,"Jesús María ","044-55-28-43-76-27"],
["Joel Sánchez Ramos",28,1.92,"Pabellón de Arteaga ","044-55-28-43-76-26"],
["Duilio Davino",38,1.80,"Rincón de Romos ","044-55-28-43-76-25"],
["Alberto García Aspe",27,1.94,"San Francisco de los Romo ","044-55-28-43-76-24"],
["Raúl Rodrigo Lara",32,1.90,"San José de Gracia ","044-55-28-43-76-23"],
["Jaime Ordiales",35,1.73,"Tepezalá ","044-55-28-43-76-22"],
["Germán Villa",27,1.94,"Xpujil ","044-55-28-43-76-21"],
["Pável Pardo",22,1.84,"Calkiní ","044-55-28-43-76-20"],
["Francisco Palencia",32,1.86,"Campeche ","044-55-28-43-76-19"],
["Jesús Arellano",19,1.97,"Candelaria ","044-55-28-43-76-18"],
["Luis Hernández",37,1.63,"Ciudad del Carmen ","044-55-28-43-76-17"],
["Ramón Ramírez",26,1.70,"Champotón ","044-55-28-43-76-16"],
["Claudio Suárez",25,1.62,"Escárcega ","044-55-28-43-76-15"]

]

# lista_de_alumnos es el nombre de la variable que almacenará mi lista multidimentsional
# esta es una lista que almacena otras listas...
# entre  corchetes cuadrados estará el contenido de nuestra lista[ ]
# dentro de la lista, hay mas listas.
# el contenido de cada lista está entre  corchetes cuadrados [ ]
# cada elemento de la lista estará separado por una coma  ( , )
# los números decimales y enteros no necesitan estar entre comillas
# las strings van ente comillas


# recuperaramos el elemento 0 de la lista multidimensional

lista_de_alumnos[0][0]
# muestra en pantalla: "Jorge Campos"
# lista_de_alumnos[0] 
# recupera el primer elemento de nuestra lista
# lista_de_alumnos[0][0]
# recupera el primer elemento de nuestra lista anidada 



lista_de_alumnos[0][1]
# muestra en pantalla: 34
# lista_de_alumnos[0] 
# recupera el primer elemento de nuestra lista
# lista_de_alumnos[0][1]
# recupera el segundo elemento de nuestra lista anidada 



lista_de_alumnos[0][2]
# muestra en pantalla: 1.63
# lista_de_alumnos[0] 
# recupera el primer elemento de nuestra lista
# lista_de_alumnos[0][2]
# recupera el tercer elemento de nuestra lista anidada 


lista_de_alumnos[0][3]
# muestra en pantalla: "Palo Alto "
# lista_de_alumnos[0] 
# recupera el primer elemento de nuestra lista
# lista_de_alumnos[0][3]
# recupera el cuarto elemento de nuestra lista anidada 


lista_de_alumnos[0][4]
# muestra en pantalla: "044-55-28-43-76-28"
# lista_de_alumnos[0] 
# recupera el primer elemento de nuestra lista
# lista_de_alumnos[0][4]
# recupera el quinto elemento de nuestra lista anidada 


En Python podemos acceder a un elemento en específico de la lista multidimensional

Contar los elementos de una lista / list

Para saber cuantos elementos integran la lista, utilizamos la función LEN:

len(nombre_de_la_lista)

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",
]


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 elemtos en la lista

print(total_elementos)
# muestra en pantalla 14...
# la lista tiene 14 elementos

Para saber cuantos elementos integran la lista, utilizamos la función len(nombre_de_la_lista).

Para saber cuantos elementos integran una lista multidimensional, utilizamos la función:

len(nombre_de_la_lista)

Ejemplo:

# creamos una lista multidimensional
lista_de_alumnos = [
 ["Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"],
["Cuauhtémoc Blanco",32,1.68,"Jesús María ","044-55-28-43-76-27"],
["Joel Sánchez Ramos",28,1.92,"Pabellón de Arteaga ","044-55-28-43-76-26"],
["Duilio Davino",38,1.80,"Rincón de Romos ","044-55-28-43-76-25"],
["Alberto García Aspe",27,1.94,"San Francisco de los Romo ","044-55-28-43-76-24"],
["Raúl Rodrigo Lara",32,1.90,"San José de Gracia ","044-55-28-43-76-23"],
["Jaime Ordiales",35,1.73,"Tepezalá ","044-55-28-43-76-22"],
["Germán Villa",27,1.94,"Xpujil ","044-55-28-43-76-21"],
["Pável Pardo",22,1.84,"Calkiní ","044-55-28-43-76-20"],
["Francisco Palencia",32,1.86,"Campeche ","044-55-28-43-76-19"],
["Jesús Arellano",19,1.97,"Candelaria ","044-55-28-43-76-18"],
["Luis Hernández",37,1.63,"Ciudad del Carmen ","044-55-28-43-76-17"],
["Ramón Ramírez",26,1.70,"Champotón ","044-55-28-43-76-16"],
["Claudio Suárez",25,1.62,"Escárcega ","044-55-28-43-76-15"]

]


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 elemtos en la lista

print(total_elementos)
# muestra en pantalla 14...
# la lista tiene 14 elementos


Para saber cuantos elementos integran una lista multidimensional, utilizamos la función: len(nombre_de_la_lista)

Para saber cuantos elementos tiene una lista dentro una lista multidimensional, utilizamos la función:

len(nombre_de_la_lista[elemento_a_contar])

Ejemplo:

# creamos una lista multidimensional
lista_de_alumnos = [
 ["Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"],
["Cuauhtémoc Blanco",32,1.68,"Jesús María ","044-55-28-43-76-27"],
["Joel Sánchez Ramos",28,1.92,"Pabellón de Arteaga ","044-55-28-43-76-26"],
["Duilio Davino",38,1.80,"Rincón de Romos ","044-55-28-43-76-25"],
["Alberto García Aspe",27,1.94,"San Francisco de los Romo ","044-55-28-43-76-24"],
["Raúl Rodrigo Lara",32,1.90,"San José de Gracia ","044-55-28-43-76-23"],
["Jaime Ordiales",35,1.73,"Tepezalá ","044-55-28-43-76-22"],
["Germán Villa",27,1.94,"Xpujil ","044-55-28-43-76-21"],
["Pável Pardo",22,1.84,"Calkiní ","044-55-28-43-76-20"],
["Francisco Palencia",32,1.86,"Campeche ","044-55-28-43-76-19"],
["Jesús Arellano",19,1.97,"Candelaria ","044-55-28-43-76-18"],
["Luis Hernández",37,1.63,"Ciudad del Carmen ","044-55-28-43-76-17"],
["Ramón Ramírez",26,1.70,"Champotón ","044-55-28-43-76-16"],
["Claudio Suárez",25,1.62,"Escárcega ","044-55-28-43-76-15"]

]


total_elementos = len(lista_de_alumnos[0])
# creamos la variable total_elementos
# almacenamos en ella el resultado de la función len
# lista_de_alumnos[0] contamos la cantidad de elementos dentro de la lista anidada
# len cuenta la cantidad de elemtos en la lista

print(total_elementos)
# muestra en pantalla 5...
# la lista dentro de la lista tiene 5 elementos


Para saber cuantos elementos tiene una lista dentro una lista multidimensional, utilizamos la función:  len(nombre_de_la_lista[elemento_a_contar])

Hacer una iteración en una lista

Es posible hacer una iteración en una lista con la ayuda de la función de control de flujo FOR.

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:
#  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


Es posible hacer una iteración en una lista con la ayuda de la función de control de flujo FOR.

De igual manera es posible hacer una iteración en una lista multidimensional con la ayuda de la función de control de flujo FOR.

Ejemplo:

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]))
	print(" - - -  - - -  - - -  - - -  - - -  - - -  - - - ")

es posible hacer una iteración en una lista multidimensional con la ayuda de la función de control de flujo FOR.

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:

Una sangría / tabulación mal colocada implicaría que nuestro código no haga nada, produzca un error u ofrezca un resultado completamente diferente.

¿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]))


es posible hacer una iteración en una lista multidimensional con la ayuda de la función de control de flujo FOR.

¡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!

Una sangría / tabulación mal colocada implicaría que nuestro código no haga nada, produzca un error u ofrezca un resultado completamente diferente.

Buscar un valor en una lista / list

Para buscar un valor en una lista unidimensional, utilizamos el comando IN :

 valor_a_buscar in nombre_de_la_lista

Ejemplo:

mi_lista_de_numeros = [
1,
2,
3,
4,
5,
6]

6 in mi_lista_de_numeros
# buscal el valor 6 en la lista mi_lista_de_numeros
# resultado, true / verdadero
# el 6 está en la lista


15 in mi_lista_de_numeros
# buscal el valor 15 en la lista mi_lista_de_numeros
# resultado, false / falso
# el 15 NO ESTÁ en la lista



Buscar un valor en una lista / list

Podemos buscar strings / cadenas de caracteres, en nuestras listas / lists:


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",
]


"Raúl Rodrigo Lara" in  lista_de_alumnos
# buscal el valor "Raúl Rodrigo Lara" en la lista_de_alumnos
# resultado, true / verdadero
# el valor "Raúl Rodrigo Lara" está en la lista


"Raúl Alonso Jiménez" in  lista_de_alumnos
# buscal el valor "Raúl Alonso Jiménez" en la lista lista_de_alumnos
# resultado, false / falso
# el valor "Raúl Alonso Jiménez" NO ESTÁ en la lista


Podemos buscar strings / cadenas de caracteres, en nuestras listas / lists

Buscar un valor en una lista / list multidimensional

Para buscar un valor en una lista multidimensional, 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 multidimensional
estados = [
[32,"Aguascalientes"],
[31,"Baja California"],
[30,"Baja California Sur"],
[29,"Campeche"],
[28,"Chiapas"],
[27,"Chihuahua"],
[26,"Ciudad de México"],
[25,"Coahuila"],
[24,"Colima"],
[23,"Durango"],
[22,"Guanajuato"],
[21,"Guerrero"],
[20,"Hidalgo"],
[19,"Jalisco"],
[18,"México"],
[17,"Michoacán"],
[16,"Morelos"],
[15,"Nayarit"],
[14,"Nuevo León"],
[13,"Oaxaca"],
[12,"Puebla"],
[11,"Querétaro"],
[10,"Quintana Roo"],
[9,"San Luis Potosí"],
[8,"Sinaloa"],
[7,"Sonora"],
[6,"Tabasco"],
[5,"Tamaulipas"],
[4,"Tlaxcala"],
[3,"Veracruz"],
[2,"Yucatán"],
[1,"Zacatecas"]
]


for elemento in estados:
# para cada elemento de la lista estados haremos:
	for datos in elemento:
	# para cada lista anidada haremos: 
		if datos == "Zacatecas":
		  # si hay un elemento con el valor Zacatecas
			print(elemento)
			 # lo mostramos en pantalla

Buscar un valor en una lista / list multidimensional

Agregar un elemento en una lista / list

Para agregar un valor en una lista utilizamos la función APPEND:

 mi_lista.append(nuevo_valor)

Ejemplo:

mi_lista_de_numeros = [
1,
2,
3,
4,
5,
6]

mi_lista_de_numeros.append(7)
# agrega el valor 7 a la lista

mi_lista_de_numeros
#mostrara en pantalla: [1, 2, 3, 4, 5, 6, 7]

Para agregar un valor en una lista  utilizamos la función APPEND

La misma lógica aplica si queremos agregar un string / cadena de caracteres a nuestra lista:

mi_lista_de_numeros = [
1,
2,
3,
4,
5,
6]

mi_lista_de_numeros.append('America Campeón')
# agrega el valor 7 a la lista

mi_lista_de_numeros
#mostrara en pantalla: [1, 2, 3, 4, 5, 6, 7, 'America Campeón']

La misma lógica aplica si queremos agregar una lista a una lista multidimensional:

# creamos una lista multidimensional
lista_de_alumnos = [
 ["Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"],
["Cuauhtémoc Blanco",32,1.68,"Jesús María ","044-55-28-43-76-27"],
["Joel Sánchez Ramos",28,1.92,"Pabellón de Arteaga ","044-55-28-43-76-26"],
["Duilio Davino",38,1.80,"Rincón de Romos ","044-55-28-43-76-25"],
["Alberto García Aspe",27,1.94,"San Francisco de los Romo ","044-55-28-43-76-24"],
["Raúl Rodrigo Lara",32,1.90,"San José de Gracia ","044-55-28-43-76-23"],
["Jaime Ordiales",35,1.73,"Tepezalá ","044-55-28-43-76-22"],
["Germán Villa",27,1.94,"Xpujil ","044-55-28-43-76-21"],
["Pável Pardo",22,1.84,"Calkiní ","044-55-28-43-76-20"],
["Francisco Palencia",32,1.86,"Campeche ","044-55-28-43-76-19"],
["Jesús Arellano",19,1.97,"Candelaria ","044-55-28-43-76-18"],
["Luis Hernández",37,1.63,"Ciudad del Carmen ","044-55-28-43-76-17"],
["Ramón Ramírez",26,1.70,"Champotón ","044-55-28-43-76-16"],
["Claudio Suárez",25,1.62,"Escárcega ","044-55-28-43-76-15"]

]

lista_de_alumnos.append(["Miguel Mejía Barón",40,1.80,"Ciudad de México","044-55-28-43-76-18"])
# agrega un nuevo alumno

Tómese en cuenta que APPEND agrega un elemento al final de la lista. Si queremos insertar un elemento en una posición en específico de la lista, utilizaremos la función INSERT:

 mi_lista.insert(posicion, nuevo_valor)

Ejemplo:

mi_lista_de_numeros = [
1,
2,
3,
4,
5,
6]

mi_lista_de_numeros.insert(0,7)
# agrega en la posición 0, la primera
# agrega el valor 7 a la lista
·

mi_lista_de_numeros
#mostrara en pantalla: [7, 1, 2, 3, 4, 5, 6]

mi_lista_de_numeros.insert(-1,8)
# agrega en la posición -1, la penúltima
# agrega el valor 8 a la lista
·

mi_lista_de_numeros
#mostrara en pantalla: [7, 1, 2, 3, 4, 5, 8, 6]


 Si queremos insertar un elemento en una posición en específico de la lista, utilizaremos el comando INSERT

Eliminar un elemento en una lista / list

Para eliminar un valor en una lista utilizamos la función REMOVE:

 mi_lista.remove(valor_a_borrar)

Ejemplo:

mi_lista_de_numeros = [
1,
2,
3,
4,
5,
6]

mi_lista_de_numeros.remove(1)
# elimina el elemento cuyo valor sea 1

mi_lista_de_numeros
#mostrara en pantalla: [2, 3, 4, 5, 6]

Para eliminar un valor en una lista  utilizamos la función REMOVE

Tómese en cuenta que REMOVE solo borrará el primer elemento que encuentre. REMOVE no borra todos los elementos con un valor en particular.

mi_lista_de_numeros = [
1,
2,
3,
1,
4,
5,
6,
1]

mi_lista_de_numeros.remove(1)
# elimina el PRIMER elemento que encuentre cuyo valor sea 1

mi_lista_de_numeros
#mostrara en pantalla: [2, 3, 1,4, 5, 6, 1]

REMOVE solo borrará el primer elemento que encuentre

Para borrar todos los elementos de una lista con un valor en particular podemos usar una LIST COMPREHENSION.

Una LIST COMPREHENSION permite volver a crear la lista excluyendo un valor determinado. Ejemplo:

mi_lista_de_numeros = [
1,
2,
3,
1,
4,
5,
6,
1]

mi_nueva_lista_de_numeros = [mi_elemento for mi_elemento in mi_lista_de_numeros if mi_elemento != 1]

mi_nueva_lista_de_numeros
#mostrara en pantalla: [2, 3,4, 5, 6]
# la nueva lista no tendrá elementos cuyo valor sea 1

Para borrar todos los elementos de una lista con un valor en particular podemos usar una  LIST COMPREHENSION.

Es necesario explicar a detalle como funciona una LIST COMPREHENSION

mi_nueva_lista_de_numeros = [ ]
# creamos una nueva lista


mi_elemento for mi_elemento in mi_lista_de_numeros
#  hacemos una iteración elemento por elemento en nuestra lista
 # mi_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
 # mi_elemento es una variable que almacena el valor del elemento
 # in permite definir que lista usaremos
 #  mi_lista_de_numeros es la lista donde haremos la iteración


if mi_elemento != 1
# define la condición con la que crearemos la nueva lista
# if si...
# mi_elemento != 1
#  si mi elemento es diferente a uno, agregálo a la nueva lista

También podemos eliminar un elemento de una lista, utilizando como referencia su posición dentro de la lista. Para ello utilizamos la función DEL:

 del mi_lista[posicion_a_borrar]

Ejemplo:

mi_lista_de_numeros = [
1,
2,
3,
4,
5,
6]

del mi_lista_de_numeros[0]
# elimina el elemento 0, el primero, de la lista

mi_lista_de_numeros
#mostrara en pantalla: [2, 3, 4, 5, 6, 7]

También podemos eliminar un elemento de una lista, utilizando como referencia su posición dentro de la lista. Para ello   utilizamos la función DEL

Recuperar la posición de un elemento en una lista

Es posible recuperar la posición de un elemento en una lista con la función INDEX .

posicion = mi_lista.index(id_elemento_a_buscar)

Ejemplo:

mi_lista_de_numeros = [
1,
2,
3,
4,
5,
6]

mi_lista_de_numeros.index(3)
# busca la posición del elemento con valor 3 en la lista

2
#mostrara en pantalla: 2, que la posición del elemento dentro de la lista

Es posible recuperar la posición de un elemento en una lista con la función INDEX

Modificar el valor de un elemento en una lista / list

Para modificar el valor de un elemento en una lista / list utilizamos el siguiente código:

 mi_lista[elemento_a_modificar] = nuevo_valor

Ejemplo:

lista_de_alumnos = [
"Jorge Campos",
"Alberto Garcia Aspe",
"Claudio Suarez",
"Cuauhtemoc Blanco",
"Duilio Davino",
"Francisco Palencia",
"German Villa"
]

lista_de_alumnos[0] = "Oscar 'El Conejo' Perez"
#Actualizamos el primer elemento de la lista
# reemplazamos el valor original  Jorge Campos  con  Oscar 'El Conejo' Perez

lista_de_alumnos[0]
# muestra  Oscar 'El Conejo' Perez

lista_de_alumnos
#muestra la lista actualizada

Modificar el valor de un elemento en una lista / list

La misma lógica se aplica para una lista multidimensional. Sólo es necesario precisar el elemento a actualizar:

 mi_lista[lista_anidada_a_modificar][elemento_a_modificar] = nuevo_valor

Ejemplo:


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"],
]

lista_de_alumnos[0][0] = "Oscar 'El Conejo' Perez"
#Actualizamos la primera lista dentro de la lista
#Actualizamos el primer elemento de la lista anidada
# reemplazamos el valor original  Jorge Campos  con  Oscar 'El Conejo' Perez

lista_de_alumnos[0][0]
# muestra  Oscar 'El Conejo' Perez

lista_de_alumnos[-1][4] = "044-667-1-55-90-86"
#Actualizamos la última lista dentro de la lista
#Actualizamos el  elemento 4 de la lista anidada (el teléfono)
# reemplazamos el valor original  044-55-28-43-76-24  con  044-667-1-55-90-86

lista_de_alumnos[-1][4]
# muestra   044-667-1-55-90-86


Modificar el valor de un elemento en una lista / list multidimensional

Ordenar una lista / list

Para ordenar una lista utilizamos la función SORT:

 mi_lista.sort()

Ejemplo:

mi_lista_de_numeros = [
15,
2,
34,
14,
-5,
75]

mi_lista_de_numeros.sort()
# ordena la lista

mi_lista_de_numeros
#mostrara en pantalla: [-5, 2, 14, 15, 34, 75]

Para ordenar una lista  utilizamos la función SORT

SORT ordena de manera ascendente una lista, para ordenarla de foma descendente utilizamos:

 mi_lista.sort(reverse=True)

Ejemplo:

mi_lista_de_numeros = [
15,
2,
34,
14,
-5,
75]

mi_lista_de_numeros.sort(reverse=True)
# ordena la lista

mi_lista_de_numeros
#mostrara en pantalla: [75, 34, 15, 14, 2, -5]

para ordenarla de foma descendente utilizamos  mi_lista.sort(reverse=True)

Para ordenar una lista multidimensional utilizamos también la función SORT. Pero también necesitamos importar el módulo / librería itemgetter

 
from operator import itemgetter

mi_lista.sort(key=itemgetter(elemento_en_la_lista_anidada_a_ordenar))

Ejemplo:

from operator import itemgetter
#importa el módulo / librería itemgetter 

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"],
]


lista_de_alumnos.sort(key=itemgetter(0))
# ordena la lista por el primer elemento de las listas anidadas
# en este ejemplo ordena por el nombre



Para ordenar una lista multidimensional utilizamos también la función SORT. Pero también necesitamos importar el módulo / librería itemgetter

Copiar una lista / list

Para copiar una lista 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_lista_copiada = copy.deepcopy(mi_lista)

Ejemplo:

import copy

mi_lista_de_numeros = [
15,
2,
34,
14,
-5,
75]

mi_lista_copiada = copy.deepcopy(mi_lista_de_numeros)
# copiamos la lista en una nueva lista


mi_lista_copiada[0]
# recuperarmos el valor del primer elemento de  la lista copiada
# muestra 15

mi_lista_de_numeros[0]
# recuperarmos el valor del primer elemento de  la  lista original
# muestra 15

Para copiar  una lista  necesitamos importar el módulo / librería COPY y luego utilizamos la función DEEPCOPY

Para copiar una lista multidimensional necesitamos importar el módulo / librería COPY y luego utilizamos la función DEEPCOPY:

 
import copy


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"],
 ["Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"],
]

mi_lista_copiada = copy.deepcopy(lista_de_alumnos)

Eliminar valores duplicados en una lista / list

Para eliminar valores duplicados en una lista / list utilizamos las funciones SET y LIST.

La función SET convierte valores a un tipo de datos llamado SET. Una característica de el tipo de datos SET es que no permite la existencia de valores duplicados.

La función LIST convierte valores al tipo de datos LIST / LISTA.

Así, para eliminar valores duplicados debemos:

  1. convertit en un SET nuestra LIST / LISTA
  2. convertir nuestro SET en una LIST / LISTA
list(set(mi_lista))

Ejemplo:

mi_lista = [
5,
5,
14,
14,
-5,
75]


mi_lista_sin_duplicados = list((set(mi_lista)))
# set(mi_lista) convierte la lista en un SET
# la naturaleza propia del SET elimina valores duplicados
#list() convierte el SET  en una lista


mi_lista_sin_duplicados
# muestra [75, -5, 5, 14]

list(set(mi_lista)) elimina valores duplicados en una lista / list

Tómese en cuenta que este método elimina el orden orignal de la lista / list.

Si es importante mantener el orden orignal de la lista / list podemos utilizar el módulo / librería OrderedDict


from collections import OrderedDict
# importamos el módulo / librería OrderedDict

list(OrderedDict.fromkeys(mi_lista))

Ejemplo:


from collections import OrderedDict
# importamos el módulo / librería OrderedDict

mi_lista = [
5,
5,
14,
14,
-5,
75]


mi_lista_sin_duplicados = list(OrderedDict.fromkeys(mi_lista))
# OrderedDict.fromkeys(mi_lista)  convierte la lista en un diccionario
# este metodo elminina los registros duplicados sin perder el orden original
#list() convierte el diccionario  en una lista


mi_lista_sin_duplicados
# muestra [5, 14, -5, 75]
# el orden original no se perdió


Con list(OrderedDict.fromkeys(mi_lista)) eliminamos duplicados  manteniendo el orden orignal de la lista / list

Para eliminar valores duplicados en una lista / list multidimensional utilizamos la funciones TUPLE, SET y LIST.

La función SET convierte valores a un tipo de datos llamado SET. Una característica de el tipo de datos SET es que no permite la existencia de valores duplicados.

La función LIST convierte valores al tipo de datos LIST / LISTA.

La función TUPLE convierte valores al tipo de datos TUPLE.

Así, para eliminar valores duplicados en una lista multidimensional debemos:

  1. convertir en un TUPLE nuestra LIST / LISTA
  2. convertir nuestro TUPLE en un SET (se eliminan duplicados)
  3. convertir nuestro SET en una LIST / LISTA

Ejemplo:

mi_lista = [
 ["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"],
 ["Jorge Campos",34,1.63,"Palo Alto ","044-55-28-43-76-28"],
]

mi_tuple = (tuple(elemento) for elemento in mi_lista)
# cada elemento de la LIST lo convertimos en un elemento de un TUPLE


mi_set =  set(mi_tuple)
# el TUPLE lo convertimos en un SET
# automaticamente se borran  registros duplicados

sin_duplicados = [list(cada_valor) for cada_valor in mi_set]
# cada elemento del SET lo convertimos en un elmento de la nueva LIST

sin_duplicados
# muestra la lista multidimensional sin duplicados

Para eliminar valores duplicados en una lista / list multidimensional utilizamos la funciones TUPLE, SET y LIST

Este ejemplo es parte de un tutorial más completo que puede consultarse:

Sitios de interés

Sitio oficial de Python


Comenta y opina este texto     Lee mi libro de visitas
© 1997-2018 Alain García Gómez
albegago@hotmail.com
Twitter: @feesgo
El vínculo a este documento es:

Compartir en facebook Compartir en twitter Compartir en whatsapp Rss

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