首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3.3中shelve.keys()的异常行为

Python3.3中shelve.keys()的异常行为
EN

Stack Overflow用户
提问于 2013-07-20 08:00:15
回答 1查看 1.4K关注 0票数 1

我有一个简短的搁置练习程序,可以在python2.7中正常运行。我把它移到了3.3,因此:

代码语言:javascript
复制
import shelve

db = shelve.open('lib')
db['a'] = "string1"
db['b'] = "string2"
keylist = db.keys()
print( keylist )
db.close()

现在我得到了这个结果(不完全是一个错误,但也不是期望的行为:

代码语言:javascript
复制
KeysView(<shelve.DbfilenameShelf object at 0x7f0f06b3be90>)

对哪里出了问题以及如何修复它有什么想法吗?3.3版的搁置有什么变化吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-20 08:04:55

shelve的行为就像一个改变了的dict……在Python2.x中,当.keys()被调用时,dict用来返回一个列表,在Python3.x中,它返回一个键的视图对象。

代码语言:javascript
复制
keylist = list(db.keys())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17757216

复制
相关文章

相似问题

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