[Python Learning] Listas y tuplas

prefacio

En los primeros cuatro días, el tutorial básico para Xiaobai se actualizó todos los días.

Actualicémoslo hoy, obtengamos un conocimiento un poco más profundo.

Todavía es un viejo dicho: Baozi, que es nuevo en Python, puede hacer clic en la tarjeta de presentación al final del artículo para comunicarse y aprender.

¿Qué son las listas y las tuplas?

La lista es dinámica, su longitud no es fija y se puede agregar, eliminar o cambiar a voluntad.

La tupla es estática, la longitud es fija y no se puede agregar, eliminar ni cambiar.

definir listas y funciones

l = [1, 2, 'hello', 'world'] # 列表中同时含有 int 和 string 类型的元素
l
[1, 2, 'hello', 'world']

tup = ('jason', 22) # 元组中同时含有 int 和 string 类型的元素
tup
('jason', 22)

Para las listas, dado que son dinámicas, simplemente agregamos al final de la lista,

Para las tuplas, en realidad se crea una nueva tupla y luego se llenan los valores de las dos tuplas originales en orden.

tup = (1, 2, 3, 4)
new_tup = tup + (5, ) # 创建新的元组 new_tup,并依次填充原元组的值
new _tup
(1, 2, 3, 4, 5)

l = [1, 2, 3, 4]
l.append(5) # 添加元素 5 到原列表的末尾
l
[1, 2, 3, 4, 5]

Tanto las listas como las tuplas en Python admiten índices negativos, y tanto las listas como las tuplas admiten operaciones de división.

l = [1, 2, 3, 4]
l[-1]
4

tup = (1, 2, 3, 4)
tup[-1]
4


list = [1, 2, 3, 4]
l[1:3] # 返回列表中索引从 1 到 2 的子列表
[2, 3]

tup = (1, 2, 3, 4)
tup[1:3] # 返回元组中索引从 1 到 2 的子元组
(2, 3) 

Funciones integradas comunes para listas y tuplas

l = [3, 2, 3, 7, 8, 1]
l.count(3) 
2
l.index(7)
3
l.reverse()
l
[1, 8, 7, 3, 2, 3]
l.sort()
l
[1, 2, 3, 3, 7, 8]

tup = (3, 2, 3, 7, 8, 1)
tup.count(3)
2
tup.index(7)
3
list(reversed(tup))
[1, 8, 7, 3, 2, 3]
sorted(tup)
[1, 2, 3, 3, 7, 8]

Almacenamiento de listas y tuplas

l = []
l.__sizeof__() // 空列表的存储空间为 40 字节
40
l.append(1)
l.__sizeof__() 
72 // 加入了元素 1 之后,列表为其分配了可以存储 4 个元素的空间 (72 - 40)/8 = 4
l.append(2) 
l.__sizeof__()
72 // 由于之前分配了空间,所以加入元素 2,列表空间不变
l.append(3)
l.__sizeof__() 
72 // 同上
l.append(4)
l.__sizeof__() 
72 // 同上
l.append(5)
l.__sizeof__() 
104 // 加入元素 5 之后,列表的空间不足,所以又额外分配了可以存储 4 个元素的空间

Las tuplas se inicializan 5 veces más rápido que las listas.

python3 -m timeit 'x=(1,2,3,4,5,6)'
20000000 loops, best of 5: 9.97 nsec per loop
python3 -m timeit 'x=[1,2,3,4,5,6]'
5000000 loops, best of 5: 50.1 nsec per loop

Por lo tanto, si los datos almacenados y la cantidad siguen siendo los mismos, seleccione la tupla

Si los datos almacenados o la cantidad es variable, seleccione la lista

A continuación se muestran dos formas de crear una lista, cuál es más rápida de inicializar y más rápida de ejecutar.


# 创建空列表
# option A
empty_list = list()

# option B
empty_list = []

De acuerdo con los resultados de la prueba, aunque la velocidad de inicialización de la creación directa de tuplas es la más rápida, no es tan rápida como la creación directa de listas debido a la necesidad de usar la función de lista para cambiar una.

Supongo que te gusta

Origin blog.csdn.net/yxczsz/article/details/128661602
Recomendado
Clasificación