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]而间接改变了元组。

posted @   肖肖凯  阅读(284)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示