Python 中的 OrderedDict 不是序列类型,这让我有点吃惊。它有一个顺序的概念,但它不是一个序列。
Python文档说
有七种序列类型:字符串、Unicode 字符串、列表、元组、字节数组、缓冲区和 xrange 对象。
对于其他容器,请参见内置的 dict 和 set 类,以及 collections 模块。...大多数序列类型支持以下操作....序列类型也支持比较。
对应于__contains__
,__add__
用于连接的那些操作,__getitem__
与整数 (in range(len(foo))
), __len__
, __min__
, __slice__
,index
和count
. __lt__
等实施比较。
OrderedDicts 实现了其中一些方法,但没有实现其他方法,可能是因为通过键(如在 dict 中)或 order(如在 index 中)访问项目的语法糖是相同的。
我知道如果有什么实现__iter__
我可以循环通过它。我怎么能确定某样东西是否有订单?我会认为这就是“序列”的含义,第 n 项始终是第 n 项。