SimbaPeng
V2EX  ›  Python

Python3 里的 dict 是有序的吧?

By SimbaPeng at 2017 年 6 月 9 日 · 8426 次点击
t = {}

t['a'] = 'A'
t['b'] = 'B'
t['c'] = 'C'

for k, v in t.items():
print(v)

这个代码 j 结果在 py2.7 中是 ACB, 在 py3.6 中是 ABC.

而且我试了好多次 py3.6 的字典输出顺序跟存入顺序一样啊
13 条回复  •  2017-06-11 00:28:13 +08:00
AX5N
   1
AX5N  
   2017 年 6 月 9 日
3.6 开始是有序的,之前是无序的
Douglee
   2
Douglee  
   2017 年 6 月 9 日
那还要 collections.OrderedDict 有什么用..
jimmyye
   3
jimmyye  
   2017 年 6 月 9 日
https://docs.python.org/3.6/whatsnew/3.6.html#new-dict-implementation
> The order-preserving aspect of this new implementation is considered an implementation detail and should not be relied upon (this may change in the future, but it is desired to have this new dict implementation in the language for a few releases before changing the language spec to mandate order-preserving semantics for all current and future Python implementations; this also helps preserve backwards-compatibility with older versions of the language where random iteration order is still in effect, e.g. Python 3.5).
264768502
   4
264768502  
   2017 年 6 月 9 日 via Android
兼容性考虑
laoyuan
   5
laoyuan  
   2017 年 6 月 9 日
这个“序”如何访问呢?
laoyuan
   6
laoyuan  
   2017 年 6 月 9 日
如何根据序来访问呢?
ipwx
   7
ipwx  
   2017 年 6 月 9 日
想要有序,请使用 collections.OrderedDict
dd99iii
   8
dd99iii  
   2017 年 6 月 9 日
t = {}

t['b'] = 'B'
t['a'] = 'A'
t['c'] = 'C'

for k, v in t.items():
print(v)

输出顺序跟存入顺序一样?你再试试
lrxiao
   9
lrxiao  
   2017 年 6 月 10 日
3.6 确保 dict 有序。。。但是你不能把这个当确保的事情
lrxiao
   10
lrxiao  
   2017 年 6 月 10 日
第一个确保 -> 实现
zonghua
   11
zonghua  
   2017 年 6 月 10 日 via iPhone
tablib 里面用的好多
SimbaPeng
   12
SimbaPeng  
OP
   2017 年 6 月 10 日
@dd99iii 一样啊,你自己用 3.6 试试
推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
© 2026 V2EX · 38ms · 3.9.8.5