Este documento trata sobre estructuras de datos con Python, enfocándose en listas. Explica conceptos como slices, rangos, mutabilidad, clonación y operaciones con listas. Incluye ejemplos de código para ilustrar cómo funcionan slices, rangos, modificar listas, clonar listas y realizar operaciones como ordenar, eliminar y agregar elementos a una lista. También presenta un ejercicio propuesto sobre implementar métodos para manipular una lista genérica.
11. ● Python tiene una de las sintaxis más
poderosas para manipular
secuencias
● Esta sintaxis se llama slice
(rebanada en español)
○ secuencia[comienzo:final:pasos]
Slices
un_slice = 'platano'
print(un_slice[0:len(un_slice):1])
print(un_slice[0:len(un_slice)])
print(un_slice[:])
print(un_slice[0])
print(un_slice[-2])
print(un_slice[3:])
print(un_slice[3::2])
print(un_slice[:len(un_slice)])
print(un_slice[:len(un_slice)-2])
print(un_slice[:len(un_slice):3])
print(un_slice[2:len(un_slice):4])
0 1 2 3 4 5 6
p l a t a n O
-7 -6 -5 -4 -3 -2 -1
13. ● Representan una secuenciade
enteros.
range (start , stop, step)
● Al igual que las cadenas y las
tuplas, los rangos son
inmutables.
● Muy eficientes en uso de
memoria y normalmente
utilizadosen for loops
Rangos
mi_rango=range(0,7,1)
mi_otro_rango=mi_rango
print(type(mi_rango))
print(id(mi_rango))
print(type(mi_otro_rango))
print(id(mi_otro_rango))
for contador in mi_rango:
print(contador)
for item in range(7):
print(item)
15. ● Sonsecuenciasde objetos, pero a
diferencia de las tuplas, sí son
mutables.
● En las listas, los valores pueden
tener cualquier tipo
● Cuando modificas una lista,
pueden existir efectos
secundarios(side
effects
)
Listas y mutabilidad
mi_lista=[9,6,8,4,5,20,30,7]
print(type(mi_lista))
print(id(mi_lista))
print(mi_lista)
print(mi_lista[0])
print(mi_lista[7])
mi_lista[5]=15
print(mi_lista)
mi_lista2=[5,'b',10.5,True]
print(mi_lista2)
print(type(mi_lista))
print(help(list))
16. ● Para modificar una lista
podemos:
○ Los índices de las listas,
funcionan igual que los de
los strings
○ Las listas se inician con [ ] o
con la función list
Listas y mutabilidad
paises = ['México', 'Venezuela', 'Colomb
ia', 'Argentina']
paises_globales = paises
print(id(paises), id(paises_globales))
paises[0] = 'Guatemala'
print(paises)
print(paises_globales)
paises_globales = None
paises_globales = paises.copy()
print(id(paises),id(paises_globales))
paises[0] = 'Honduras'
print(paises)
print(paises_globales)
17. ● Para ciclar a lo largo de los
elementos de una lista,
normalmente usamos for
loops
● Si la lista está vacía, el
cuerpo del loop nunca se
ejecuta
Listas y mutabilidad
milista = ['one','two','three','four']
print(milista.index('two’))
for elemento in milista:
print(elemento)
del milista[2] #print(mylist)
del milista[1:3] #print(mylist)
18. Python implementa una forma
avanzada y simple de crear sublistas
de elementos internos de una lista,
usando la técnica del slicing.
La forma básica del slicing es:
[posicion_inicial:posicion_final:paso]
Slicing en listas
letras = ['a', 'b', 'c', 'd', 'e', 'f',
'g']
letras[4:]
letras[4:6]
letras[2:]
letras[2:100]
letras[2:8:2]
letras[8:2:-2]
letras[:-1]
letras[:-5]
letras[:-5:-2]
20. ● Casi siempre es mejor clonar
unalista envezde mutarla
● Para clonar una lista podemos
utilizar rebanadas (slices) o la
función list
Clonación
mi_lista=[1,2,3]
print(mi_lista)
print(id(mi_lista))
mi_otra_lista=list(mi_lista)
#mi_otra_lista=mi_lista[::]
print(mi_otra_lista)
print(id(mi_otra_lista))
21. ● Es una forma concisa de
aplicar operaciones a los
valores deunasecuencia.
● Tambiénse pueden aplicar
condiciones para
filtrar .
List comprehension
my_list = list(range(10))
print(my_list)
double = [i * 2 for i in my_list]
print(double)
pares = [i for i in my_list if i % 2 ==
0]
print(pares)
22. Operaciones con listas
● El operador + (suma) concatena dos o
más listas
● El operador * (multiplicación) repite la
misma lista
● Para añadir un elemento al final de la
lista, podemos utilizar el método
append
● Para eliminar el último elemento de la
lista, podemos utilizar el método pop
● Para ordenar una lista, podemos utilizar
el método sort
● Para eliminar elementos, también
podemos utilizar el keyword del
● Si sabesqué elemento quieres eliminar,
pero no su índice, puedes utilizar el
método remove
lista=[3, 5, 2, 4, 1]
lista.sort() #print(list)
lista.reverse() #print(mylist)
removido=lista.pop(2)
print(lista)#print(removed)
lista.remove('two')
del lista[2] #print(mylist)
del lista[1:3] #print(mylist)
23. Ejercicios:
Plantear una función para
administrar una lista genérica
implementando los siguientes
métodos :
a) Insertar un nodo al principio de la
lista.
b) Insertar un nodo al final de la
lista.
c) Insertar un nodo en la segunda
posición. Si la lista está vacía no se
inserta el nodo.
Listas
d) Insertar un nodo en la ante última
posición.
e) Borrar el primer nodo.
f) Borrar el segundo nodo.
g) Borrar el último nodo.
h) Borrar el nodo con información
mayor.
26. Si amas lo que haces y estás dispuesto a
hacer lo que sea necesario , está a tu
alcance. Y valdrá la pena cada minuto que
pases solo por la noche, pensando y
pensando qué es lo que quieres diseñar o
construir. Valdrá la pena, lo prometo .
Nunca te fíes de un ordenador
que no puedas tirar por la
ventana.