Python核心速记01

2022-04-24  本文已影响0人  Nefelibatas

列表与元组

列表是动态的,长度大小不固定,可以随意地增加、删减或者改变元素(mutable)。

元组是静态的,长度大小固定,无法增加删减或者改变(immutable)。

如果想对已有的元组做任何"改变",就只能重新开辟一块内存,创建新的元组。

对于列表来说加入元素会修改原来列表中的元素,而不会创建新的列表。

Python 中的列表和元组都支持负数索引。

除了基本的初始化,索引外,列表和元组都支持切片操作。

列表和元组都可以随意嵌套。

两者也可以通过 list() 和 tuple() 函数相互转换。

list((1, 2, 3))

tuple([1, 2, 3])

内置函数

l = [3, 2, 3, 7, 8, 1]

l.count(3) # count(item) 表示统计列表 / 元组中 item 出现的次数。

l.index(7) # 示返回列表 / 元组中 item 第一次出现该值的索引。

l.reverse()

l.sort()

tup = (3, 2, 3, 7, 8, 1)

tup.count(3)

tup.index(7)

# reversed() 和 sorted() 表示对列表 / 元组进行倒转和排序
# reversed() 返回一个倒转后的迭代器
# sorted() 返回排好序的新列表。

list(reversed(tup))

sorted(tup)

列表是动态的,所以需要存储指针,来指向对应的元素。

由于列表可变,所以需要额外存储已经分配的长度大小(8 字节),这样才可以实时追踪列表空间的使用情况。

当空间不足时,及时分配额外空间。

元组长度大小固定,元素不可变,所以存储空间固定。

元组要比列表更加轻量级一些,性能速度要略优于列表。

如果想要增加、删减或者改变元素,那么列表显然更优。对于元组必须得通过新建一个元组来完成。

如果存储的数据和数量不变,比如你需要返回的是一个地点的经纬度,然后直接传给前端渲染,那么肯定选用元组更合适。

如果存储的数据或数量是可变的,比如社交平台上的一个日志功能,是统计一个用户在一周之内看了哪些用户的帖子,那么则用列表更合适。

列表与元组总结

列表和元组都是有序的,可以存储任意数据类型的集合,区别主要在于下面这两点。

上一篇下一篇

猜你喜欢

热点阅读