0% encontró este documento útil (0 votos)
52 vistas

Estructuras de Python

Este documento describe las estructuras de listas en Python. Las listas permiten almacenar objetos con un orden definido y posibilidad de duplicados. Se pueden crear listas vacías o llenas, y acceder a elementos mediante su índice. Es posible añadir, modificar y eliminar elementos de una lista.

Cargado por

jorfar03
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
52 vistas

Estructuras de Python

Este documento describe las estructuras de listas en Python. Las listas permiten almacenar objetos con un orden definido y posibilidad de duplicados. Se pueden crear listas vacías o llenas, y acceder a elementos mediante su índice. Es posible añadir, modificar y eliminar elementos de una lista.

Cargado por

jorfar03
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 14

Estructuras de Python:

Listas

Las listas permiten almacenar objetos mediante un orden definido y con


posibilidad de duplicados. Las listas son estructuras de datos mutables, lo que
significa que podemos añadir, eliminar o modificar sus elementos.

Crear listas

Una lista está compuesta por cero o más elementos. En Python debemos escribir estos
elementos separados por comas y dentro de corchetes.

Ejemplos de listas:

list = []
programas = ['Python' , 'Ruby' , 'Javascript' ]
serief = [0, 1, 1, 2, 3, 5, 8, 13]
datos = ['Tenerife', {'cielo': 'limpio', 'temp': 24}, 3718, (28.2933947, -16.5226597)]
print(list)
print(programas)
print(serief)
print(datos)

Nota: Una lista puede contener tipos de datos heterogéneos, lo que la hace una
Estructura

Conversión

Para convertir otros tipos de datos en una lista podemos usar la función list():

# conversión desde una cadena de texto


lista = list('Python')
print(lista)

Si nos fijamos en lo que ha pasado, al convertir la cadena de texto Python se ha creado


una lista con 6 elementos, donde cada uno de ellos representa un caracter de la cadena.
Podemos extender este comportamiento a cualquier otro tipo de datos que permita ser
iterado (iterables).
Lista vacía

Existe una manera particular de usar list() y es no pasarle ningún argumento. En este caso
estaremos queriendo convertir el «vacío» en una lista, con lo que obtendremos una lista
vacía:
# lista vacia
lista = list()
print(lista)

Operaciones con listas

Obtener un elemento Igual que en el caso de las cadenas de texto, podemos obtener un
elemento de una lista a través del índice (lugar) que ocupa.
Ejemplo:

tienda = [ 'Agua' , 'Huevos' , 'Aceite' ]


print(tienda[0])
print(tienda[1])
print(tienda[2])
print(tienda[-1]) # acceso con índice negativo

El índice que usemos para acceder a los elementos de una lista tiene que estar
comprendido entre los límites de esta. Si usamos un índice antes del comienzo o después
del final obtendremos un error (excepción):

tienda = [ 'Agua' , 'Huevos' , 'Aceite' ]


print(tienda[3])

Traceback (most recent call last):


File "<string>", line 2, in <module>
IndexError: list index out of range

tienda = [ 'Agua' , 'Huevos' , 'Aceite' ]


print(tienda[-5])

Traceback (most recent call last):


File "<string>", line 2, in <module>
IndexError: list index out of range
Trocear una lista

El troceado de listas funciona de manera similar al troceado de cadenas.


Ejemplo:

tienda = [ 'Agua' , 'Huevos' , 'Aceite' , 'Sal' ,


'Limón' ]
print(tienda[0:3])
print(tienda[:3])
print(tienda[2:4])

tienda = [ 'Agua' , 'Huevos' , 'Aceite' , 'Sal' ,


'Limón' ]
# Equivale a invertir la lista
print(tienda[::-1])

En el troceado de listas, a diferencia de lo que ocurre al obtener elementos, no debemos


preocuparnos por acceder a índices inválidos (fuera de rango) ya que Python los
restringirá a los límites de la lista:

tienda = [ 'Agua' , 'Huevos' , 'Aceite' , 'Sal' ,


'Limón' ]
print(tienda[10:])
print(tienda[-100:2])
print(tienda[2:100])

[]
['Agua', 'Huevos']
['Aceite', 'Sal', 'Limón']
>
Ninguna de las operaciones anteriores modifica la lista original, simplemente devuelven
una lista nueva.

Invertir una lista

Python nos ofrece, al menos, tres mecanismos para invertir los elementos de una lista:
Conservando la lista original: Mediante troceado de listas con step negativo:

tienda = [ 'Agua' , 'Huevos' , 'Aceite' , 'Sal' ,


'Limón']
print(tienda[::-1])
Conservando la lista original: Mediante la función reversed():

tienda = [ 'Agua' , 'Huevos' , 'Aceite' , 'Sal' ,


'Limón']
print(list(reversed(tienda)))

Modificando la lista original: Utilizando la función reverse() (nótese que es sin «d» al final):

tienda = [ 'Agua' , 'Huevos' , 'Aceite' , 'Sal' ,


'Limón']
tienda.reverse()
print(tienda)

Añadir al final de la lista

Una de las operaciones más utilizadas en listas es añadir elementos al final de estas. Para
ello Python nos ofrece la función append(). Se trata de un método destructivo que
modifica la lista original:

tienda = [ 'Agua' , 'Huevos' , 'Aceite' , 'Sal' ,


'Limón']
tienda.append( 'Atún' )
print(tienda)

Creando desde vacío


Una forma muy habitual de trabajar con listas es empezar con una vacía e ir añadiendo
elementos poco a poco. Se podría hablar de un patrón creación. Supongamos un ejemplo
en el que queremos construir una lista con los números pares del 1 al 20:

numeros = []
for i in range(20):
if i % 2 == 0:
numeros.append(i)
print(numeros)

Añadir en cualquier posición de una lista


En Python ofrece una función insert() que vendría a ser una generalización de la anterior,
para incorporar elementos en cualquier posición. Simplemente debemos especificar el
índice de inserción y el elemento en cuestión. También se trata de una función destructiva
2:

tienda = [ 'Agua' , 'Huevos' , 'Aceite' , 'Sal' ,


'Limón']
tienda.insert(1,'Jamón')
print(tienda)

tienda = [ 'Agua' , 'Huevos' , 'Aceite' , 'Sal' ,


'Limón']
tienda.insert(3,'Jamón')
print(tienda)

El índice que especificamos en la función insert() lo podemos intepretar como la posición


delante (a la izquierda) de la cual vamos a colocar el nuevo valor en la lista.

Al igual que ocurría con el troceado de listas, en este tipo de inserciones no obtendremos
un error si especificamos índices fuera de los límites de la lista. Estos se ajustarán al
principio o al final en función del valor que indiquemos:

tienda = [ 'Agua' , 'Huevos' , 'Aceite' , 'Sal' ,


'Limón']
tienda.insert(100, 'Mermelada' )
print(tienda)

Aunque es posible utilizar insert() para añadir elementos al final de una lista, siempre se
recomienda usar append() por su mayor legibilidad:

values = [1, 2, 3]
values.append(4)
print(values)

Repetir elementos Al igual que con las cadenas de texto, el operador * nos permite repetir
los elementos de una lista:

tienda = [ 'Agua' , 'Huevos' , 'Aceite' ]


tienda = tienda * 3
print(tienda)
Combinar listas Python nos ofrece dos aproximaciones para combinar listas: Conservando
la lista original: Mediante el operador + o +=:
lista1 = [ 'Agua' , 'Huevos' , 'Aceite' ]
lista2 = [ 'Naranja' , 'Manzana' , 'Piña' ]
lista3 = lista1 + lista2
print(lista3)

Modificando la lista original: Mediante la función extend():

lista1 = [ 'Agua' , 'Huevos' , 'Aceite' ]


lista2 = [ 'Naranja' , 'Manzana' , 'Piña' ]
lista1.extend(lista2)
print(lista1)

Hay que tener en cuenta que extend() funciona adecuadamente si pasamos una lista
como argumento. En otro caso, quizás los resultados no sean los esperados. Veamos un
ejemplo:

lista = ['Agua' , 'Huevos' , 'Aceite' ]


lista.extend( 'Limón')
print(lista)

['Agua', 'Huevos', 'Aceite', 'L', 'i', 'm', 'ó', 'n']

El motivo es que extend() «recorre» (o itera) sobre cada uno de los elementos del objeto
en cuestión. En el caso anterior, al ser una cadena de texto, está formada por caracteres.
De ahí el resultado que obtenemos. Se podría pensar en el uso de append() para combinar
listas. La realidad es que no funciona exactamente como esperamos; la segunda lista se
añadiría como una sublista de la principal:

lista1 = [ 'Agua' , 'Huevos' , 'Aceite' ]


lista2 = [ 'Naranja' , 'Manzana' , 'Piña' ]
lista1.append(lista2)
print(lista1)

['Agua', 'Huevos', 'Aceite', ['Naranja', 'Manzana', 'Piña']]


Si se requiere mostrar la información de la sublista que se agrego a lista1, se dice la
posición de la lista1 y la posición dentro de la sublista:

lista1 = [ 'Agua' , 'Huevos' , 'Aceite' ]


lista2 = [ 'Naranja' , 'Manzana' , 'Piña' ]
lista1.append(lista2)
print(lista1)
print(lista1[3][0])

['Agua', 'Huevos', 'Aceite', ['Naranja', 'Manzana', 'Piña']]


Naranja

Explicación:
En la lista1 la sublista se encuentra en la posición 3 y en esa posición se encuentra una
sublista y en la posición 0 se encuentra almacenado la frase Naranja.

Modificar una lista

Del mismo modo que se accede a un elemento utilizando su índice, también podemos
modificarlo:
lista1 = [ 'Agua' , 'Huevos' , 'Aceite' ]
print(lista1)
print(lista1[0])
lista1[0]= 'Cebolla' #se cambia el valor almacenado en la posición 0
print(lista1)

Resultado
['Agua', 'Huevos', 'Aceite']
Agua
['Cebolla', 'Huevos', 'Aceite']

lista1 = [ 'Agua' , 'Huevos' , 'Aceite' ]


lista2 = [ 'Naranja' , 'Manzana' , 'Piña' ]
lista1.append(lista2)
print(lista1)
print(lista1[3][0])
lista1[3][0] = 'Mango' #se cambia la palabra naranja por mango
print(lista1)
Resultado
['Agua', 'Huevos', 'Aceite', ['Naranja', 'Manzana', 'Piña']]
Naranja
['Agua', 'Huevos', 'Aceite', ['Mango', 'Manzana', 'Piña']]

lista = ['Agua' , 'Huevos' , 'Aceite' , 'Sal' , 'Limón']


print(lista)
print(lista[1:4])
lista[1:4] = [ 'Atún' , 'Pasta' ] #cambia lo que esta en la posición 1 al 3 por atún y
pasta
print(lista)

Resultado
['Agua', 'Huevos', 'Aceite', 'Sal', 'Limón']
['Huevos', 'Aceite', 'Sal']
['Agua', 'Atún', 'Pasta', 'Limón']

La lista que se asigna no necesariamente debe tener la misma longitud que el rango que
se sustituye.

Borrar elementos:

Python nos ofrece, al menos, cuatro formas para borrar elementos en una lista: Por su
índice: Mediante la función del():

lista = ['Agua' , 'Huevos' , 'Aceite' , 'Sal' , 'Limón']


print(lista)
del(lista[3]) #el elemento sal lo elimina
print(lista)

Resultado
['Agua', 'Huevos', 'Aceite', 'Sal', 'Limón']
['Agua', 'Huevos', 'Aceite', 'Limón']

Por su valor:
Mediante la función remove():
lista = ['Agua' , 'Huevos' , 'Aceite' , 'Sal' , 'Limón']
print(lista)
lista.remove('Sal') #el elemento sal lo elimina
print(lista)
Resultado
['Agua', 'Huevos', 'Aceite', 'Sal', 'Limón']
['Agua', 'Huevos', 'Aceite', 'Limón']

Si existen valores duplicados, la función remove() sólo borrará el primero que encuentre.

Por su índice (con extracción):


Las dos funciones anteriores del() y remove() efectivamente borran el elemento indicado
de la lista, pero no «devuelven nada. Sin embargo, Python nos ofrece la función pop() que
además de borrar, nos «recupera» el elemento; algo así como una extracción:

lista = ['Agua' , 'Huevos' , 'Aceite' , 'Sal' , 'Limón']


print(lista)
frase=lista.pop() #elimina la ultima
print("frase: ",frase)
print(lista)
frase=lista.pop(2) #elimina la que se encuentra en la posicion 2
print("frase 2: ",frase)
print(lista)

Resultado
['Agua', 'Huevos', 'Aceite', 'Sal', 'Limón']
frase: Limón
['Agua', 'Huevos', 'Aceite', 'Sal']
frase 2: Aceite
['Agua', 'Huevos', 'Sal']

Si usamos la función pop() Sin pasarle ningún argumento, por defecto usará el índice -1, es
decir, el último elemento de la lista. Pero también podemos indicarle el índice del
elemento a extraer.
Por su rango: Mediante troceado de listas:

lista = ['Agua' , 'Huevos' , 'Aceite' , 'Sal' , 'Limón']


print(lista)
lista[1:4] = []
print(lista)
Resultado
['Agua', 'Huevos', 'Aceite', 'Sal', 'Limón']
['Agua', 'Limón']

Borrado completo de la lista


Python nos ofrece, al menos, dos formas para borrar una lista por completo:
Utilizando la función clear():

lista = ['Agua' , 'Huevos' , 'Aceite' , 'Sal' , 'Limón']


print(lista)
lista.clear()
print("lista vacia: ",lista)

Inicializar una lista en vacío con []:

lista = ['Agua' , 'Huevos' , 'Aceite' , 'Sal' , 'Limón']


print(lista)
lista = []
print("lista vacia: ",lista)

Resultado:
['Agua', 'Huevos', 'Aceite', 'Sal', 'Limón']
lista vacia: []

Buscar un elemento

operacion = [ '+' , '-' , '*' , '/']


print(operacion)
print('+' in operacion)

El operador in siempre devuelve un valor booleano, es decir, verdadero o falso.

Número de ocurrencias
Para contar cuántas veces aparece un determinado valor dentro de una lista podemos
usar la función count():

operacion = [ '+' , '-' , '*' , '/', '+']


print(operacion)
print("Se repite",operacion.count('+')," veces")
print("Se repite",operacion.count('p')," veces")
['+', '-', '*', '/', '+']
Se repite 2 veces
Se repite 0 veces

Convertir lista a cadena de texto Dada una lista, podemos convertirla a una cadena de
texto, uniendo todos sus elementos mediante algún separador. Para ello hacemos uso de
la función join() con la siguiente estructura:

‘separador’.join(lista)

Los separadores pueden ser :

1) , (coma)
2) =
3) Espacio en blanco

lista = [ 'JUNIOR ' , 'TU' , 'PAPA']


print(lista)
union = ' '.join(lista)
print(union)

['JUNIOR ', 'TU', 'PAPA']


JUNIOR TU PAPA

Ordenar una lista


Python proporciona, al menos, dos formas de ordenar los elementos de una lista:
Conservando lista original: Mediante la función sorted() que devuelve una nueva lista
ordenada:

lista = [1, -10, -20,25,12]


print(sorted(lista))
print("lista Original: ",lista)
Resultado
[-20, -10, 1, 12, 25]
lista Original: [1, -10, -20, 25, 12]
Modificando la lista original: Mediante la función sort():
lista = [1, -10, -20,25,12]
print("Lista original: ",lista)
lista.sort()
print("Lista ordenada: ",lista)

Resultado
Lista original: [1, -10, -20, 25, 12]
Lista ordenada: [-20, -10, 1, 12, 25]

Ambos métodos admiten un parámetro «booleano» reverse para indicar si queremos que
la ordenación se haga en sentido inverso:

lista = [1, -10, -20,25,12]


print("Lista ordenada ",sorted(lista,reverse=True))
print("lista Original: ",lista)

Resultado
Lista ordenada [25, 12, 1, -10, -20]
lista Original: [1, -10, -20, 25, 12]

lista = [1, -10, -20,25,12]


print("Lista ordenada ",sorted(lista,reverse=True))
print("lista Original: ",lista)
lista=sorted(lista,reverse=True)
print("lista ordenada: ",lista)

Resultado
Lista ordenada [25, 12, 1, -10, -20]
lista Original: [1, -10, -20, 25, 12]
lista ordenada: [25, 12, 1, -10, -20]

lista = [1, -10, -20,25,12]


print("Lista original: ",lista)
lista.sort()
print("Lista ordenada: ",lista)
lista.sort(reverse=True)
print("Lista ordenada invertida: ",lista)
Resultado:

Lista original: [1, -10, -20, 25, 12]


Lista ordenada: [-20, -10, 1, 12, 25]
Lista ordenada invertida: [25, 12, 1, -10, -20]

Longitud de una lista


Podemos conocer el número de elementos que tiene una lista con la función len():

lista = [1, -10, -20,25,12]


print("Longitud de la lista: ",len(lista))

Iterar sobre una lista


Al igual que hemos visto con las cadenas de texto, también podemos iterar sobre los
elementos de una lista utilizando la sentencia for:

lista = [1, -10, -20,25,12]


for n in lista:
print(n)

Resultado
-10
-20
25
12

Iterar usando enumeración


Hay veces que no sólo nos interesa «mostrar» cada uno de los elementos de una lista, sino
que también queremos saber su índice dentro de la misma. Para ello Python nos ofrece la
función enumerate():

lista = [ 'Agua' , 'Huevos' , 'Aceite' , 'Sal' , 'Limón' ]


for i, p in enumerate(lista):
print(i, p)

Resultado
1 Huevos
2 Aceite
3 Sal
4 Limón
Iterar sobre múltiples listas
Python ofrece la posibilidad de iterar sobre múltiples listas en paralelo utilizando la
función zip():

lista1 = [ 'Agua' , 'Aceite' , 'Arroz' ]


lista2 = [ 'mineral natural' , 'de oliva virgen' , 'basmati' ]
for producto, detalle in zip(lista1, lista2):
print(producto, detalle)

Resultado

Agua mineral natural


Aceite de oliva virgen
Arroz basmati

Nota: En el caso de que las listas no tengan la misma longitud, la función zip() realiza la
combinación hasta que se agota la lista más corta.

Dado que zip() produce un iterador, si queremos obtener una lista explícita con la
combinación en paralelo de las listas, debemos construir dicha lista de la siguiente
manera:

lista1 = [ 'Agua' , 'Aceite' , 'Arroz' ]


lista2 = [ 'mineral natural' , 'de oliva virgen' , 'basmati' ]
print("Muestra las dos listas: ",list(zip(lista1, lista2)))
lista3 = list(zip(lista1, lista2))
print("Lista 3: ",lista3)
print("Lista 3 [0][0]: ",lista3[0][0])

Resultado

Muestra las dos listas: [('Agua', 'mineral natural'), ('Aceite', 'de oliva virgen'),
('Arroz', 'basmati')]
Lista 3: [('Agua', 'mineral natural'), ('Aceite', 'de oliva virgen'), ('Arroz', 'basmati')]
Lista 3 [0][0]: Agua

También podría gustarte