首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反向OrderedDict TypeError

反向OrderedDict TypeError
EN

Stack Overflow用户
提问于 2017-03-15 15:58:07
回答 1查看 3.5K关注 0票数 4

我有一个有序的字典,我试图以相反的顺序遍历它,基本上从插入的最后一个(键,值)开始。

代码语言:javascript
复制
dicts = OrderedDict()
...
for key, value in reversed(dicts.items()):

当我在Python3.5.1中使用PyCharm时,上面的代码工作得很好,但是当我使用Python3解释器(不确定确切的版本)将其放在码斗上时,我会得到下面for循环实现的错误:

代码语言:javascript
复制
TypeError: argument to reversed() must be a sequence

为什么会发生这个错误,我如何修复它?

EN

回答 1

Stack Overflow用户

发布于 2017-03-15 16:00:47

按照医生们的说法,OrderedDict.items()只支持3.5版的reversed,所以我认为它是一个较旧的版本。

修复它的一种方法是首先将其转换为列表:

代码语言:javascript
复制
for key, value in reversed(list(dicts.items())):
     ...

NB:根据注释,dicts.items()应该是内存高效的,但是list(dicts.items())肯定会创建一个新列表,其中包含dicts中的条目数。在大多数情况下,这应该是很好的,但对于非常大的dicts,这将看到一个O(N)内存使用量的命中,这可能是重要的。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42814840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档