Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决

yipeiwu_com6年前Python基础

引言

目前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)

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之下的用法是:

for k, v in dict1.iteritems(): 
    print(k+ "=>" + v) 

上述代码在python3下,可以正确的执行运行。

4.  Python 2 vs python 3

从Python 2向Python 3的进化需要一个过程,其中的差异可以参照如下文章:/post/105518.htm

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对【听图阁-专注于Python设计】的支持。

相关文章

python实现简单遗传算法

python实现简单遗传算法

今天整理之前写的代码,发现在做数模期间写的用python实现的遗传算法,感觉还是挺有意思的,就拿出来分享一下。 首先遗传算法是一种优化算法,通过模拟基因的优胜劣汰,进行计算(具体的算法思...

利用Python半自动化生成Nessus报告的方法

利用Python半自动化生成Nessus报告的方法

0x01 前言 Nessus是一个功能强大而又易于使用的远程安全扫描器,Nessus对个人用户是免费的,只需要在官方网站上填邮箱,立马就能收到注册号了,对应商业用户是收费的。当然,个人用...

基于Python实现定时自动给微信好友发送天气预报

基于Python实现定时自动给微信好友发送天气预报

效果图 from wxpyimport * import requests from datetimeimport datetime import time from apsche...

Python的Django框架中设置日期和字段可选的方法

设置字段可选 在摆弄了一会之后,你或许会发现管理工具有个限制:编辑表单需要你填写每一个字段,然而在有些情况下,你想要某些字段是可选的。 举个例子,我们想要Author模块中的email字...

对numpy中布尔型数组的处理方法详解

布尔数组的操作方式主要有两种,any用于查看数组中是否有True的值,而all则用于查看数组是否全都是True。 如果用于计算的时候,布尔量会被转换成1和0,True转换成1,False...