这篇文章主要是为了让本身记住字典不是序列,python中序列的类型html
有个朋友问我,什么是序列化,我瞬间懵了,而后查了一下,发现廖雪峰老师给出了一个很舒服的解释:
序列化:咱们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其余语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。
反序列化:反过来,把变量内容从序列化的对象从新读到内存里称之为反序列化,即unpickling。python
从概念能够得出,字典确定不是序列,否则就能够直接写入文件存储了。翻译
这是官方文档中的解释,对应的连接地址点这儿code
翻译过来大概意思就是:
一个可迭代对象,它支持经过__getitem__()特殊方法使用整数索引高效地访问元素,并定义了一个__len__()方法,该方法返回序列的长度。一些内置的序列类型是list、str、tuple和bytes。注意,dict也支持__getitem__()和__len__(),但它被认为是一个映射,而不是一个序列,由于查找使用任意不可变键,而不是整数。htm
collections.abc.Sequence抽象基类定义了一个比__getitem__()和__len__()更丰富的接口,增长了count(),index(),__contains__(),和__reversed__()。能够使用register()显式注册实现此扩展接口的类型。对象