Listas de Python
Las listas son uno de los 4 tipos de datos en Python que se utilizan para almacenar colecciones de datos.
# List: colección ordenada de elementos encerrados entre corchetes
['John', 'Peter', 'Debora', 'Charles']
Obtener valores con índices
# Acceder a elementos de la lista usando el índice (base 0, el primer elemento es el índice 0)
furniture = ['table', 'chair', 'rack', 'shelf']
furniture[0] # Devuelve el primer elemento: 'table'
'table'
furniture[1]
'chair'
furniture[2]
'rack'
furniture[3]
'shelf'
Índices negativos
# Índice negativo: acceder a elementos desde el final de la lista
furniture = ['table', 'chair', 'rack', 'shelf']
furniture[-1] # Devuelve el último elemento: 'shelf'
'shelf'
furniture[-3]
'chair'
f'The {furniture[-1]} is bigger than the {furniture[-3]}'
'The shelf is bigger than the chair'
Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje
furniture[-1] si furniture = ['table', 'chair', 'rack', 'shelf']?'table''shelf'['shelf']IndexErrorObtener sublistas con Slices
# Slicing: obtener sublista usando la sintaxis [inicio:fin] (el fin es exclusivo)
furniture = ['table', 'chair', 'rack', 'shelf']
furniture[0:4] # Devuelve los elementos desde el índice 0 hasta el 3 (el 4 excluido)
['table', 'chair', 'rack', 'shelf']
furniture[1:3]
['chair', 'rack']
furniture[0:-1]
['table', 'chair', 'rack']
# Slice desde el principio: omitir el índice de inicio (por defecto es 0)
furniture[:2] # Devuelve los dos primeros elementos
['table', 'chair']
# Slice hasta el final: omitir el índice final (por defecto es el final de la lista)
furniture[1:] # Devuelve todos los elementos desde el índice 1 hasta el final
['chair', 'rack', 'shelf']
furniture[:]
['table', 'chair', 'rack', 'shelf']
Dividir la lista completa realizará una copia:
# El slicing crea una copia: [:] crea una copia superficial de la lista
spam = ['cat', 'bat', 'rat', 'elephant']
spam2 = spam[:] # Crea una copia, no una referencia
spam2
['cat', 'bat', 'rat', 'elephant']
spam.append('dog')
spam
['cat', 'bat', 'rat', 'elephant', 'dog']
spam2
['cat', 'bat', 'rat', 'elephant']
Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje
spam[:] cuando spam es una lista?Obtener la longitud de una lista con len()
# len() devuelve el número de elementos en una lista
furniture = ['table', 'chair', 'rack', 'shelf']
len(furniture) # Devuelve 4
4
Cambiar valores con índices
# Modificar elementos de la lista asignando nuevos valores a los índices
furniture = ['table', 'chair', 'rack', 'shelf']
furniture[0] = 'desk' # Reemplazar el primer elemento
furniture
['desk', 'chair', 'rack', 'shelf']
furniture[2] = furniture[1]
furniture
['desk', 'chair', 'chair', 'shelf']
furniture[-1] = 'bed'
furniture
['desk', 'chair', 'chair', 'bed']
Concatenación y Replicación
# Concatenación de listas: combinar dos listas usando el operador +
[1, 2, 3] + ['A', 'B', 'C'] # Devuelve [1, 2, 3, 'A', 'B', 'C']
[1, 2, 3, 'A', 'B', 'C']
# Replicación de listas: repetir la lista varias veces usando el operador *
['X', 'Y', 'Z'] * 3 # Devuelve ['X', 'Y', 'Z', 'X', 'Y', 'Z', 'X', 'Y', 'Z']
['X', 'Y', 'Z', 'X', 'Y', 'Z', 'X', 'Y', 'Z']
my_list = [1, 2, 3]
my_list = my_list + ['A', 'B', 'C']
my_list
[1, 2, 3, 'A', 'B', 'C']
Uso de bucles for con Listas
# Iterar sobre los elementos de la lista usando un bucle for
furniture = ['table', 'chair', 'rack', 'shelf']
for item in furniture: # Bucle a través de cada elemento
print(item)
table
chair
rack
shelf
Obtener el índice en un bucle con enumerate()
# enumerate() devuelve tanto el índice como el valor en un bucle
furniture = ['table', 'chair', 'rack', 'shelf']
for index, item in enumerate(furniture): # Obtener índice y elemento juntos
print(f'index: {index} - item: {item}')
index: 0 - item: table
index: 1 - item: chair
index: 2 - item: rack
index: 3 - item: shelf
Bucle en Múltiples Listas con zip()
# zip() combina múltiples listas elemento por elemento en un bucle
furniture = ['table', 'chair', 'rack', 'shelf']
price = [100, 50, 80, 40]
for item, amount in zip(furniture, price): # Emparejar elementos de ambas listas
print(f'The {item} costs ${amount}')
The table costs $100
The chair costs $50
The rack costs $80
The shelf costs $40
Los operadores in y not in
# Operador in: comprobar si un elemento existe en una lista
'rack' in ['table', 'chair', 'rack', 'shelf'] # Devuelve True
True
'bed' in ['table', 'chair', 'rack', 'shelf']
False
furniture = ['table', 'chair', 'rack', 'shelf']
'bed' not in furniture
True
'rack' not in furniture
False
El truco de la asignación múltiple
El truco de la asignación múltiple es un atajo que le permite asignar múltiples variables con los valores de una lista en una sola línea de código. Así que en lugar de hacer esto:
furniture = ['table', 'chair', 'rack', 'shelf']
table = furniture[0]
chair = furniture[1]
rack = furniture[2]
shelf = furniture[3]
Podrías escribir esta línea de código:
furniture = ['table', 'chair', 'rack', 'shelf']
table, chair, rack, shelf = furniture
table
'table'
chair
'chair'
rack
'rack'
shelf
'shelf'
El truco de la asignación múltiple también se puede utilizar para intercambiar los valores en dos variables:
a, b = 'table', 'chair'
a, b = b, a
print(a)
chair
print(b)
table
El método index
El método index le permite encontrar el índice de un valor pasando su nombre:
furniture = ['table', 'chair', 'rack', 'shelf']
furniture.index('chair')
1
Añadir Valores
append()
append añade un elemento al final de una list:
furniture = ['table', 'chair', 'rack', 'shelf']
furniture.append('bed')
furniture
['table', 'chair', 'rack', 'shelf', 'bed']
Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje
append() a una lista?insert()
insert añade un elemento a una list en una posición dada:
furniture = ['table', 'chair', 'rack', 'shelf']
furniture.insert(1, 'bed')
furniture
['table', 'bed', 'chair', 'rack', 'shelf']
Eliminar Valores
del
del elimina un elemento usando el índice:
furniture = ['table', 'chair', 'rack', 'shelf']
del furniture[2]
furniture
['table', 'chair', 'shelf']
del furniture[2]
furniture
['table', 'chair']
remove()
remove elimina un elemento usando su valor real:
furniture = ['table', 'chair', 'rack', 'shelf']
furniture.remove('chair')
furniture
['table', 'rack', 'shelf']
Eliminación de elementos repetidos
Si el valor aparece varias veces en la lista, solo se eliminará la primera instancia del valor.
pop()
Por defecto, pop eliminará y devolverá el último elemento de la lista. También puedes pasar el índice del elemento como parámetro opcional:
animals = ['cat', 'bat', 'rat', 'elephant']
animals.pop()
'elephant'
animals
['cat', 'bat', 'rat']
animals.pop(0)
'cat'
animals
['bat', 'rat']
Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje
pop() cuando se llama en una lista?Ordenar valores con sort()
numbers = [2, 5, 3.14, 1, -7]
numbers.sort()
numbers
[-7, 1, 2, 3.14, 5]
furniture = ['table', 'chair', 'rack', 'shelf']
furniture.sort()
furniture
['chair', 'rack', 'shelf', 'table']
También puedes pasar True para el argumento de palabra clave reverse para que sort() ordene los valores en orden inverso:
furniture.sort(reverse=True)
furniture
['table', 'shelf', 'rack', 'chair']
Si necesitas ordenar los valores en orden alfabético normal, pasa str.lower para el argumento de palabra clave key en la llamada al método sort():
letters = ['a', 'z', 'A', 'Z']
letters.sort(key=str.lower)
letters
['a', 'A', 'z', 'Z']
Puedes usar la función incorporada sorted para devolver una nueva lista:
furniture = ['table', 'chair', 'rack', 'shelf']
sorted(furniture)
['chair', 'rack', 'shelf', 'table']
El tipo de dato Tuple
La diferencia clave entre tuplas y listas es que, mientras que las tuples son objetos inmutables, las lists son mutables. Esto significa que las tuplas no se pueden cambiar mientras que las listas sí se pueden modificar. Las tuplas son más eficientes en memoria que las listas.
furniture = ('table', 'chair', 'rack', 'shelf')
furniture[0]
'table'
furniture[1:3]
('chair', 'rack')
len(furniture)
4
La principal forma en que las tuplas difieren de las listas es que las tuplas, al igual que las cadenas, son inmutables.
Conversión entre list() y tuple()
tuple(['cat', 'dog', 5])
('cat', 'dog', 5)
list(('cat', 'dog', 5))
['cat', 'dog', 5]
list('hello')
['h', 'e', 'l', 'l', 'o']
Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje