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

yipeiwu_com7年前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操作sqlite的CRUD实例分析

本文实例讲述了python操作sqlite的CRUD实现方法。分享给大家供大家参考。具体如下: import sqlite3 as db conn = db.connect('myt...

Python实现带百分比的进度条

大家在安装程序或下载文件时,通常都能看到进度条,提示你当前任务的进度。其实,在python中实现这个功能很简单,下面是具体代码。在实际应用中,你完全可以根据自己的要求进行修改!比如,示例...

使用python读取.text文件特定行的数据方法

使用python读取.text文件特定行的数据方法

如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式。 再加上,对读和写文件的操作,就行了...

Django中ORM表的创建和增删改查方法示例

Django中ORM表的创建和增删改查方法示例

前言 Django作为重量级的Python web框架,在做项目时肯定少不了与数据库打交道,编程人员对数据库的语法简单的还行,但过多的数据库语句不是编程人员的重点对象。因此用ORM来操作...

通过数据库向Django模型添加字段的示例

首先借用书本(book)的这个数据模型: from django.db import models class Publisher(models.Model): name =...