【发布时间】:2013-11-29 03:56:58
【问题描述】:
让我有点惊讶的是,Python 中的 OrderedDict 不是序列类型。它有顺序的概念,但不是序列。
有七种序列类型:字符串、Unicode 字符串、列表、 元组、字节数组、缓冲区和 xrange 对象。
对于其他容器,请参阅内置的 dict 和 set 类,以及 收藏模块。 ...大多数序列类型支持以下 操作....序列类型也支持比较。
那些对应于__contains__、__add__的操作用于连接、__getitem__与整数(在range(len(foo))中)、__len__、__min__、__slice__、index和count。 __lt__等实现比较。
OrderedDicts 实现了其中一些方法,但没有实现其他方法,可能是因为通过键(如在 dict 中)或按顺序(如在 index 中)访问项目的语法糖是相同的。
我知道如果有东西实现了__iter__,我可以循环遍历它。我怎么能确定某样东西是否有订单?我以为这就是“序列”的意思,第 n 项始终是第 n 项。
【问题讨论】: