为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这两种形式的打印结果不同,而迭代结果相同

第一种形式:

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
print d.values()

第二种形式:

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
print d.itervalues()


正在回答

3 回答

类似于 Java 中对象的 toString() 有关吧

0 回复 有任何疑惑可以回复我~

那这两个方法有何不同之处呢?

1. values() 方法实际上把一个 dict 转换成了包含 value 的list。

2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。

3. 打印 itervalues() 发现它返回一个 <dictionary-valueiterator> 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。


0 回复 有任何疑惑可以回复我~

第一种是一次性取出value值作为一个list,第二种是依次取value值,所以如果单独打印第二种应该是打不出结果的,要用循环将其打印出来

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758622    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

为什么这两种形式的打印结果不同,而迭代结果相同

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信