引言
目前Python2和Python3存在版本上的不兼容性,這里將列舉dict中的問題之一。下面話不多說,來看看詳細的介紹:
1. Python 2 vs python 3
根據Python社區的主流要求,Python 2將在最近的若干年內不再提供技術支持,目前的python 2.7.12已經是其維護版本;如無意外,大家請參照使用Python 3.
Python 3與Python 2之間的割裂以及向下不兼容性是其一個非常著名的事件,給整個社區和相關應用造成了相當的困擾。
2. 問題
Python 2:
>> dict1 = {}
>> dict1['key1'] = 'val1'
>> for k, v in dict1.items():
print(k+ "=>" + v)
1
2
3
4
5
6
|
Traceback (most recent call last): File "< ipython-input-23-5ccef53f3d75 >", line 1, in < module > hist_sorted = sorted(hist.iteritems(), key=lambda d: d[1], reverse=True) AttributeError: 'dict' object has no attribute 'items' |
3. 問題的解決
確認其為Python 3下的用法:
在Python 2之下的用法是:
1
2
|
for k, v in dict1.iteritems(): print (k + "=>" + v) |
上述代碼在python3下,可以正確的執行運行。
4. Python 2 vs python 3
從Python 2向Python 3的進化需要一個過程,其中的差異可以參照如下文章:http://www.ythuaji.com.cn/article/105709.html
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:http://blog.csdn.net/blueheart20/article/details/54600511