python中的sequence(序列)

摘要

这篇文章主要是为了让自己记住字典不是序列,python中序列的类型

序列化的定义

有个朋友问我,什么是序列化,我瞬间懵了,然后查了一下,发现廖雪峰老师给出了一个很舒服的解释:
  序列化:我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。
  反序列化:反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。

从概念可以得出,字典肯定不是序列,不然就可以直接写入文件存储了。

python中sequence(序列)

这是官方文档中的解释,对应的链接地址点这儿

翻译过来大概意思就是:
一个可迭代对象,它支持通过__getitem__()特殊方法使用整数索引高效地访问元素,并定义了一个__len__()方法,该方法返回序列的长度。一些内置的序列类型是list、str、tuple和bytes。注意,dict也支持__getitem__()和__len__(),但它被认为是一个映射,而不是一个序列,因为查找使用任意不可变键,而不是整数。

collections.abc.Sequence抽象基类定义了一个比__getitem__()和__len__()更丰富的接口,增加了count(),index(),__contains__(),和__reversed__()。可以使用register()显式注册实现此扩展接口的类型。

猜你喜欢

转载自www.cnblogs.com/wuyongqiang/p/10408217.html