python内置序列类型
引言
python的核心语言特色之一是对序列数据类型的支持,只要实现了__getitem__和__len__,就可以认为是一种序列类型。按照不同的分类标准可以将python中内置的序列类型分为以下几类。
按照序列能否存放不同类型对象
容器序列
list、tuple、collections.deque等。
容器序列类型,同一个序列对象中可以存放不同类型的数据。
扁平序列
str、bytes、bytearray、memoryview、array.array。
一个序列对象只能容纳一种类型。
区别
可以认为容器序列中存放的是任意类型对象的引用,扁平序列中存放的是值。扁平序列更加紧凑,但是只能放字符、字节、数值这种基础类型。
按照序列能被被修改
可变序列
list,bytearray、array.array、collections.deque和memoryview。
不可变序列
tuple、str和byte。
-
对于str,看上去很像可变的,因为可以进行各种字符串拼接操作,但实际上不是。
-
对于元组,大家都知道它不可变,但是如果元组中有元素是可变对象,那么可以通过改变元组的元素来改变元组,如下例子。
a = (1, 2, [1, 2])
# a[0] = 100 # 错误,元组不能改变
a[2][0] = 100
print(a)
输出为:
(1, 2, [100, 2])
可见,因为元组的元素a[2]是一个可变的list,因此可以通过改变a[2]而间接改变了元组。
分类:
python随笔
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~