173 lines
3.5 KiB
Python
173 lines
3.5 KiB
Python
"""
|
|
Tipos de listas
|
|
"""
|
|
|
|
numeros = [1, 2, 3]
|
|
letras = ['a', 'b', 'c']
|
|
palabras = ['chanchito', 'feliz']
|
|
palabras = ['chanchito', 'feliz', 'Felipe', 'alumno']
|
|
booleans = [True, False, True, True]
|
|
matriz = [[0, 1], [1, 0]]
|
|
|
|
# tener una lista multiplicada
|
|
ceros = [0] * 10
|
|
ceros_unos = [0, 1] * 10
|
|
|
|
# Unir dos listas
|
|
alfanumerico = numeros + letras
|
|
|
|
# Crear un rango de numeros en una lista
|
|
rango = list(range(1, 11))
|
|
|
|
# Crear una lista de un string
|
|
chars = list("hola mundo")
|
|
|
|
|
|
"""
|
|
Manipulando listas
|
|
"""
|
|
|
|
mascotas = ["Wolfgang", "Pelusa", "Pulga", "Copito"]
|
|
|
|
# Accediendo a un elemento
|
|
print(mascotas[0])
|
|
|
|
# Cambiar un elemento
|
|
mascotas[0] = "Bicho"
|
|
print(mascotas)
|
|
|
|
# Pedir un fragmento de la lista
|
|
print(mascotas[2:])
|
|
print(mascotas[-1])
|
|
|
|
|
|
"""
|
|
Desempaquetar listas
|
|
"""
|
|
|
|
primero, segundo, tercero = numeros
|
|
|
|
mas_numeros = list(range(1, 11))
|
|
primero, *otros = mas_numeros
|
|
primero, segundo, *otros, penultimo, ultimo = mas_numeros
|
|
|
|
print(primero, segundo, otros, penultimo, ultimo)
|
|
|
|
|
|
"""
|
|
Acceder al indice de una lista
|
|
"""
|
|
|
|
for mascota in enumerate(mascotas):
|
|
print(mascota)
|
|
# Con la función enumarate nos devuelve tuplas
|
|
# Con lo cual, con 0 nos devuelve el indice
|
|
print(mascota[0])
|
|
# Y con 1 nos devuelve la mascota
|
|
print(mascota[1])
|
|
|
|
# Entonces, guardamos en el for el indice ya lo tendremos en una variable
|
|
for indice, mascota in enumerate(mascotas):
|
|
print(indice, mascota)
|
|
|
|
|
|
"""
|
|
Buscar elementos
|
|
"""
|
|
|
|
mascotas.index("Pelusa")
|
|
# Pero indice da error si no encuentra el elemento
|
|
# mascotas.index("Wolfgang")
|
|
|
|
# Podemos ingresa un nuevo elemento en la lista indican su indice
|
|
mascotas.insert(3, "Pelusa")
|
|
# Para agregar al final de la lista
|
|
mascotas.append("Mun")
|
|
|
|
print(mascotas)
|
|
|
|
# Podemos contar las veces que hay un elemento en una lista con count
|
|
print(mascotas.count('Pelusa'))
|
|
|
|
# Para eliminar. Pero solo elimina la primera vez
|
|
mascotas.remove('Pelusa')
|
|
print(mascotas)
|
|
|
|
# Para eliminar el último elemento
|
|
mascotas.pop()
|
|
print(mascotas)
|
|
|
|
# Y por su indice
|
|
mascotas.pop(1)
|
|
print(mascotas)
|
|
|
|
# También se puede eliminar con del
|
|
del mascotas[0]
|
|
print(mascotas)
|
|
|
|
# Para eliminar por completo
|
|
mascotas.clear()
|
|
print(mascotas)
|
|
|
|
|
|
"""
|
|
Ordenando listas
|
|
"""
|
|
|
|
desorden = [2, 1, 44, 23, 66, 34, 78, 5]
|
|
|
|
# Orden derecho
|
|
desorden.sort()
|
|
print(desorden)
|
|
|
|
# Orden inverso
|
|
desorden.sort(reverse=True)
|
|
print(desorden)
|
|
|
|
# Con sort() se ordena la lista pero
|
|
# Con sorted() nos devolverá una nueva lista
|
|
# Entonces, hay que asignarlo a otra lista
|
|
|
|
nueva_lista = sorted(desorden)
|
|
|
|
print(nueva_lista)
|
|
# La primera lista no se verá afectada
|
|
print(desorden)
|
|
|
|
# A sorted() también se puede hacer el inverso
|
|
nueva_lista = sorted(desorden, reverse=True)
|
|
|
|
# Ordenamos listas dentro de una lista
|
|
usuarios = [[4, 'Chanchito'], [5, 'Pulga'], [1, 'Felipe']]
|
|
|
|
usuarios.sort()
|
|
print(usuarios)
|
|
|
|
# Con en integer segundo ordenad por el primer elemento
|
|
usuarios2 = [['Chanchito', 4], ['Pulga', 5], ['Felipe', 1]]
|
|
usuarios2.sort()
|
|
print(usuarios2)
|
|
|
|
# Pero podemos indicar que ordene por el segundo elemento "[1]"
|
|
# con una función
|
|
|
|
usuarios3 = [['Chanchito', 4], ['Pulga', 5], ['Felipe', 1]]
|
|
|
|
|
|
def ordena(elemento):
|
|
return elemento[1]
|
|
|
|
|
|
# Con key indicamos que sort() pase los argumentos a la función usuarios3
|
|
# y devolverá la lista pero solo del elemento indicado dentro de la función
|
|
# Aquí podríamos pasar un segundo argumento como reverse=True
|
|
usuarios3.sort(key=ordena)
|
|
print(usuarios3)
|
|
|
|
# Esto se puede hacer más elegante
|
|
# con funciones lambda (Funciones canónicas)
|
|
# Sintaxis: (key=lambda parámetro:valorRetorno)
|
|
# La lambda sustituye a la anterior función ^_^
|
|
|
|
usuarios3.sort(key=lambda elemento: elemento[1])
|