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 的字典输出顺序跟存入顺序一样啊
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
|
1
AX5N 2017 年 6 月 9 日
3.6 开始是有序的,之前是无序的
|
|
2
Douglee 2017 年 6 月 9 日
那还要 collections.OrderedDict 有什么用..
|
|
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). |
|
4
264768502 2017 年 6 月 9 日 via Android
兼容性考虑
|
|
5
laoyuan 2017 年 6 月 9 日
这个“序”如何访问呢?
|
|
6
laoyuan 2017 年 6 月 9 日
如何根据序来访问呢?
|
|
7
ipwx 2017 年 6 月 9 日
想要有序,请使用 collections.OrderedDict
|
|
8
dd99iii 2017 年 6 月 9 日
t = {}
t['b'] = 'B' t['a'] = 'A' t['c'] = 'C' for k, v in t.items(): print(v) 输出顺序跟存入顺序一样?你再试试 |
|
9
lrxiao 2017 年 6 月 10 日
3.6 确保 dict 有序。。。但是你不能把这个当确保的事情
|
|
10
lrxiao 2017 年 6 月 10 日
第一个确保 -> 实现
|
|
11
zonghua 2017 年 6 月 10 日 via iPhone
tablib 里面用的好多
|
|
13
dd99iii 2017 年 6 月 11 日
|
推荐学习书目
› 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