English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Python

Control de flujo de Python

Funciones en Python

Tipos de datos en Python

Operación de archivos de Python

Objetos y Clases de Python

Fecha y Hora de Python

Conocimientos Avanzados de Python

Manual de Referencia de Python

Listas (List) en Python

En este artículo, aprenderemos todo sobre las listas de Python; cómo crearlas, cortarlas, agregar o eliminar elementos, etc.

Python proporciona una serie de tipos de datos compuestos generalmente denominados secuenciales. La lista es uno de los tipos de datos más utilizados y ampliamente utilizados en Python.

¿Cómo crear una lista (List)?

En la programación Python, se crea una lista poniendo todos los elementos (elementos) entre corchetes [] y separándolos con comas.

puede tener cualquier número de elementos, y pueden tener diferentes tipos (enteros, flotantes, cadenas, etc.).

# Lista vacía
my_list = []
# Lista de enteros
my_list = [1, 2, 3]
# Lista con tipos de datos mixtos
my_list = [1, "Hello", 3.4]

Del mismo modo, una lista puede incluso contener otra lista como un elemento. Esto se llama lista anidada.

# Lista anidada
my_list = ["mouse", [8, 4, 6], ['a']]

¿Cómo acceder a los elementos de la lista?

Podemos acceder a los elementos de la lista de varias maneras.

índice de lista

Podemos usar el operador de índice [] para acceder a elementos de la lista. El índice comienza en 0. Por lo tanto, contiene5de una lista de elementos individuales van desde 0 a4。

Intente acceder a otros elementos; de lo contrario, se generará un IndexError. El índice debe ser un entero. No podemos usar float u otros tipos, lo que causará un TypeError.

Acceder a una lista anidada usando índice anidado.

my_list = ['p','r','o','b','e']
# Salida: p
print(my_list[0])
# Salida: o
print(my_list[2])
# Salida: e
print(my_list[4])
# Error! ¡Sólo se pueden usar enteros para el índice
# my_list[4].0]
# Lista anidada
n_list = ["Happy", [2,0,1,5]]
# Índice anidado
# Salida: a
print(n_list[0][1])    
# 输出: 5
print(n_list[1]3])

índice negativo

Python permite índices negativos en sus secuencias. Índice-1representa el último elemento,-2representa el segundo último elemento, y así sucesivamente.

my_list = ['p','r','o','b','e']
# Salida: e
print(my_list[-1])
# Salida: p
print(my_list[-5])

¿Cómo cortar una lista en Python?

Podemos usar el operador de rebanado (dos puntos: ) para acceder a una serie de elementos de la lista.

my_list = ['p','r','o','g','r','a','m','i','z']
# Desde el3elemento hasta el5elementos
print(my_list[2:5])
# Desde el principio hasta el4elementos
print(my_list[:-5])
# 第6个元素至结束
print(my_list[5:])
# 元素开始到结束
print(my_list[:])

通过将索引考虑到如下所示的元素之间,切片可以得到最佳的可视化效果。如果我们想要访问一个范围,我们需要两个下标来从列表中分割那部分。

如何更改或添加元素到列表?

List是可变的,也就是说,它们的元素可以更改,而不像字符串元组

我们可以使用赋值运算符(=)更改一个项目或一系列项目。

# 值列表
odd = [2, 4, 6, 8]
# 改变第一个元素    
odd[0] = 1            
# 输出: [1, 4, 6, 8]
print(odd)
# 改变第2到第4项
odd[1:4] = [3, 5, 7]  
# 输出: [1, 3, 5, 7]
print(odd)

我们可以使用append()方法将一个项目添加到列表中,或者使用extend()方法将多个项目添加到列表中。

odd = [1, 3, 5]
odd.append(7)
# 输出: [1, 3, 5, 7]
print(odd)
odd.extend([9, 11, 13])
# 输出: [1, 3, 5, 7, 9, 11, 13]
print(odd)

我们还可以使用+运算符组合两个列表。这也称为串联。

*运算符重复给定次数的列表。

odd = [1, 3, 5]
# 输出: [1, 3, 5, 9, 7, 5]
print(odd + [9, 7, 5])
# Salida: ["re", "re", "re"]
print(["re"] * 3)

此外,我们可以使用insert()方法在需要的位置插入一个项,或者通过将多个项压缩到列表的一个空切片中来插入多个项。

odd = [1, 9]
odd.insert(1,3)
# 输出: [1, 3, 9] 
print(odd)
odd[2:2] = [5, 7]
# 输出: [1, 3, 5, 7, 9]
print(odd)

如何从列表中删除或删除元素?

我们可以使用关键字del从列表中删除一个或多个项。它甚至可以完全删除列表。

my_list = ['p','r','o','b','l','e','m']
# Eliminar un elemento
del my_list[2]
# Salida: ['p', 'r', 'b', 'l', 'e', 'm']     
print(my_list)
# Eliminar múltiples elementos
del my_list[1:5]  
# Salida: ['p', 'm']
print(my_list)
# Eliminar toda la lista
del my_list       
# Error: Lista no definida
print(my_list)

我们可以使用remove()方法删除给定项目,也可以使用pop()方法删除给定索引处的项目。

如果未提供索引,则pop()方法将删除并返回最后一项。这有助于我们将列表实现为堆栈(先进先出数据结构)。

还可以使用该clear()方法清空列表。

my_list = ['p','r','o','b','l','e','m']
my_list.remove('p')
# Salida: ['r', 'o', 'b', 'l', 'e', 'm']
print(my_list)
# Salida: 'o'
print(my_list.pop())1))
# Salida: ['r', 'b', 'l', 'e', 'm']
print(my_list)
# 输出: 'm'
print(my_list.pop())
# 输出: ['r', 'b', 'l', 'e']
print(my_list)
my_list.clear()
# 输出: []
print(my_list)

最后,我们还可以通过为元素切片分配一个空列表来删除列表中的项目。

>>> my_list = ['p','r','o','b','l','e','m']
>>> my_list[2:3] = []
>>> my_list
['p', 'r', 'b', 'l', 'e', 'm']
>>> my_list[2:5] = []
>>> my_list
['p', 'r', 'm']

Python列表方法

下面列出了Python编程中list对象可用的方法。

它们以list.method()方式访问。上面已经使用了某些方法。

Python列表方法
append() -将元素添加到列表的末尾
extend() -将列表的所有元素添加到另一个列表
insert() -在定义的索引处插入一个项目
remove() -从列表中删除一个项目
pop() -删除并返回给定索引处的元素
clear() -从列表中删除所有项目
index() -返回第一个匹配项的索引
count() -返回作为参数传递的项目数
sort() -以升序对列表中的项目进行排序
reverse() -反转列表中项目的顺序
copy() -返回列表的浅表副本

Python列表方法的一些示例:

my_list = [3, 8, 1, 6, 0, 8, 4]
# 输出: 1
print(my_list.index(8))
# 输出: 2
print(my_list.count(8))
my_list.sort()
# 输出: [0, 1, 3, 4, 6, 8, 8]
print(my_list)
my_list.reverse()
# 输出: [8, 8, 6, 4, 3, 1, 0]
print(my_list)

列表理解:创建新列表的优雅方式

列表理解是从Python现有列表中创建新列表的一种简洁明了的方法。

列表理解包含一个表达式,后跟方括号内的for语句

这是一个列出每项增加2的幂的示例。

pow2 = [2 ** x for x in range(10)]
# 输出: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
print(pow2)

此代码等效于

pow2 = []
for x in range(10):
   pow2.append(2 ** x)

列表推导可以选择包含更多for或if语句可选if语句可以过滤出新列表的项目。这里有些示例。

>>> pow2 = [2 ** x for x in range(10) if x > 5]
>>> pow2
[64, 128, 256, 512]
>>> odd = [x for x in range(20) if x % 2 == 1]
>>> odd
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
>>> [x+y for x in ['Python ','C '] for y in ['Language','Programming']]
['Lenguaje de Python', 'Programación en Python', 'Lenguaje C', 'Programación en C']

Otras operaciones de lista en Python

Pruebas de membresía de lista en Python

Podemos usar la palabra clave in para probar si un elemento existe en una lista.

my_list = ['p','r','o','b','l','e','m']
# Salida: True
print('p' in my_list)
# Salida: False
print('a' in my_list)
# Salida: True
print('c' not in my_list)

Recorrer lista

Usando el ciclo for, podemos recorrer cada elemento de una lista.

for fruit in ['apple','banana','mango']:
    print("I like",fruit)