Introducción
Python incluye una serie de tipos de datos secuenciales que le permiten almacenar colecciones de datos de forma organizada y eficiente. Los tipos de secuencia básicos son listas, tuplas y objetos de rango.
Este artículo repasa las listas de Python. Le mostraremos cómo crear una lista, dividir y ordenar una lista, agregar o eliminar elementos de una lista, etc.
Las listas son secuencias mutables, lo que significa que se pueden editar después de su creación. Las listas son uno de los tipos de datos más utilizados en Python y normalmente se utilizan para almacenar colecciones de elementos del mismo tipo.
Crear una lista
Las listas se crean normalmente colocando elementos dentro de un par de corchetes []
, separados por comas. Pueden tener cualquier número de elementos, que pueden ser de diferentes tipos. Aquí hay un ejemplo:
L = ['orange', 'white', 'green']
Los corchetes sin elementos entre ellos indican una lista vacía:
L = []
Aunque las listas de Python son generalmente homogéneas, es posible tener elementos con tipos de datos mixtos:
L = [1, 'white', 6.5]
También puede declarar listas anidadas donde uno o más elementos también son listas:
L = [1, 2, ['red', 'blue']]
Varios elementos pueden tener el mismo valor:
L = [1, 2, 3, 2, 2, 1]
Las listas también se pueden construir usando una comprensión de listas, el list()
y otras funciones integradas como sorted()
.
Accede a los elementos de la lista
Se puede hacer referencia a un elemento de lista por su índice. Los índices son números enteros y comienzan de 0
a n-1
donde n
es el número de elementos:
L = ["a", "b", "c", "d"]
0 1 2 3
En Python, los índices están encerrados entre corchetes:
L[index]
Por ejemplo, para acceder al segundo elemento de la lista, debe utilizar:
colors = ['orange', 'white', 'green']
colors[1]
'white'
Si se hace referencia a un índice que no existe, se IndexError
:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
Para acceder a los elementos de una lista anidada, utilice varios índices:
L = [1, 2, ["red", "blue"]]
L[2][1]
'blue'
Python también le permite acceder a los elementos de la lista mediante índices negativos. El último elemento se denomina -1
, el penúltimo elemento -2
y así sucesivamente:
L = ["a", "b", "c", "d"]
-4 -3 -2 -1
Por ejemplo, para acceder al segundo elemento desde el final, use:
colors = ['orange', 'white', 'green']
colors[-2]
'white'
Cortar (dividir) una lista
En Python, puede dividir una lista usando el siguiente módulo:
L[start:stop:step]
- El primer argumento especifica el índice en el que comienza la extracción. Cuando se utiliza un índice negativo, indica un desplazamiento desde el final de la lista. Si se omite este argumento, la división comienza en el índice
0
. - El segundo argumento especifica el índice antes del cual finalizar la extracción; el resultado no incluye el
stop
". Cuando se usa un índice negativo, indica un desplazamiento desde el final de la lista. Si este argumento se omite o es mayor que la longitud de la lista, la división va al final de la lista. - El tercer argumento es opcional y especifica el paso de corte. Cuando
step
", el valor predeterminado es1
. Cuando se usa un valor negativo, la sección toma los elementos en orden inverso.
El resultado de dividir una lista es una nueva lista que contiene los elementos extraídos y la lista original no se cambia.
Aquí la sintaxis legal de Python:
L[:] # copy whole list
L[start:] # slice the list starting from the element with index "start" to the end of the list.
L[:stop] # slice the list starting from the begging up to but not including the element with index "stop".
L[start:stop] # slice the list starting from the element with index "start" up to but not including the element with index "stop".
stop"
L[::step] # slice the list with a stride of "step"
Aquí hay un ejemplo básico de cómo dividir una lista comenzando con el elemento con índice 1
a 4
pero sin incluir el elemento con índice 4
:
fruits = ['Apple', 'Peach', 'Lemon', 'Strawberry', 'Grape']
fruits[1:4]
['Peach', 'Lemon', 'Strawberry']
Actualizar el valor del elemento
Para cambiar el valor de un elemento específico en una lista, consulte su número de índice:
L[index] = value
A continuación, se muestra un ejemplo que muestra cómo actualizar el valor del último elemento de la lista:
colors = ['orange', 'white', 'green']
colors[-1] = "blue"
print(colors)
['orange', 'white', 'blue']
Si existe el elemento con el índice indicado, se actualiza el valor. De lo contrario, se IndexError
:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
También puede actualizar una sección de una lista con nuevos valores:
colors = ['orange', 'white', 'green']
colors[1:3] = ['red']
print(colors)
['orange', 'red']
El bloque de reemplazo puede tener menos, mayor o igual al número de elementos de la lista. Esto le permite expandir o contraer la lista.
Agregar elementos a una lista
El tipo de datos de lista tiene dos métodos que le permiten agregar elementos a una lista append()
e insert()
.
El append()
agrega un elemento al final de la lista. La sintaxis del append()
es la siguiente:
L.append(element)
" Element
" es el elemento a agregar a la lista. Puede ser cualquier tipo de datos, incluida una lista. Aquí hay un ejemplo:
colors = ['orange', 'white', 'green']
colors.append('red')
print(colors)
['orange', 'white', 'green', 'red']
El insert()
inserta un elemento en una posición específica en una lista y tiene la siguiente sintaxis:
L.insert(index, element)
" index
" es la posición donde desea insertar el elemento y " element
" es el elemento a agregar en la lista. El siguiente ejemplo muestra cómo agregar un elemento a una lista en la primera posición:
colors = ['orange', 'white', 'green']
colors.insert(0, 'red')
print(colors)
['red', 'orange', 'white', 'green']
El extend()
permite ampliar una lista con varios elementos. Toma un solo argumento y tiene la siguiente sintaxis:
L.extend(list)
Los elementos de " list
" se agregan al final de " L
". Aquí hay un ejemplo:
colors = ['orange', 'white', 'green']
colors.extend(['blue', 'black'])
print(colors)
['orange', 'white', 'green', 'blue', 'black']
Eliminar elementos de una lista
El remove()
acepta un argumento y elimina el primer elemento con un valor correspondiente al argumento de la lista:
L.remove(element)
colors = ['orange', 'white', 'orange', 'green']
colors.remove('orange')
print(colors)
['white', 'orange', 'green']
Si el elemento con el valor dado no existe, se ValueError
:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
El pop()
toma un argumento y elimina el elemento de índice correspondiente al argumento de la lista:
L.pop(element)
El argumento es opcional y el predeterminado es " -1
", que es el último elemento de la lista. El valor de retorno del método es el elemento eliminado. Aquí hay un ejemplo:
colors = ['orange', 'white', 'green']
colors.pop(1)
print(colors)
'white'
['orange', 'green']
La palabra clave del
en combinación con la notación de sección le permite eliminar más de un elemento. Por ejemplo, para eliminar los dos primeros elementos de una lista, utilice lo siguiente:
colors = ['orange', 'white', 'orange', 'green']
del colors[0:2]
print(colors)
['orange', 'green']
Para eliminar todos los elementos, utilice el clear()
, que borra la lista y no acepta argumentos:
colors = ['orange', 'white', 'green']
colors.clear()
print(colors)
[]
Encuentra la longitud de una lista
La función incorporada len()
devuelve el número total de elementos de un objeto.
Para encontrar la longitud de una lista, pásala como argumento a la función len()
:
len(L)
Aquí hay un ejemplo:
colors = ['orange', 'white', 'green']
num = len(colors)
print(num)
3
Iterando a través de una lista
Para recorrer todos los elementos de una lista, use el ciclo for
colors = ['orange', 'white', 'green']
for color in colors:
print(color)
orange
white
green
Si necesitas índices, tienes varios métodos a tu disposición. Las formas más comunes son combinar las funciones range()
y len()
o usar la función incorporada enumerate()
.
El siguiente ejemplo muestra cómo recuperar el índice y el valor de cada elemento de la lista:
colors = ['orange', 'white', 'green']
for i in range(len(colors)):
print("Index {}: Value {}".format(i, colors[i]))
Index 0: Value orange
Index 1: Value white
Index 2: Value green
En lugar de usar el range(len(...))
, puede usar la función enumerate()
para iterar a través de una lista de una manera más Pythonic:
colors = ['orange', 'white', 'green']
for index, value in enumerate(colors):
print("Index {}: Value {}".format(index, value))
Index 0: Value orange
Index 1: Value white
Index 2: Value green
Compruebe si existe un artículo
Para verificar si un elemento existe en una lista, puede usar los operadores in
y not in
colors = ['orange', 'white', 'green']
print('orange' in colors)
La salida será True
o False
:
True
Aquí hay otro ejemplo que usa la if
:
colors = ['orange', 'white', 'green']
if 'blue' not in colors:
print('no')
else:
print('yes')
La salida será True
o False
:
no
Métodos de lista de Python
Los objetos de lista aceptan los siguientes métodos:
append(x)
: agrega un elemento al final de la lista.clear()
: elimina todos los elementos de la lista.copy()
: devuelve una copia superficial de la lista.count(x)
: devuelve el número de veces quex
' en la lista.extend(iterable)
: agrega 'iterable
' al final de la lista.index(x)
: devuelve la posición de la primera aparición de un elemento con el valor 'x
'.insert(i, x)
: agrega un elemento en una posición determinada.pop(i)
: elimina un elemento de una ubicación determinada.remove()
: elimina el elemento con un valor dado.reverse()
: invierte los elementos de la lista.sort()
: ordena los elementos de la lista.
Conclusión
En este artículo, hemos discutido cómo crear y trabajar con listas en Python.