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

为什么print d.itervalues()不能执行,但print d.values()却能执行呢?

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }

print d.itervalues()
sum = 0.0
for v in d.itervalues():
   sum = sum + v
print sum / len(d)


以上代码执行结果为:

                 #print d.itervalues()未执行
78.25




d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }

print d.values()

sum = 0.0

for v in d.values():

   sum = sum + v

print sum / len(d)

以上代码执行结果为:

[85, 74, 95, 59]     #print d.values()执行
78.25



d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }

print d.itervalues()

print d.values()

执行结果为:

                          #print d.itervalues()未执行

[85, 74, 95, 59]          #print d.values()执行

正在回答

2 回答

 打印 itervalues() 发现它返回一个 <dictionary-valueiterator> 对象,你再用for循环去把她解析迭代出来啊。要不你按楼上的变成list再解析。

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

lenya9

如果用d.itervalues()运行,最后 print sum/(len(d)) 成功。 这里的len(d)指的是谁的长度?
2015-10-30 回复 有任何疑惑可以回复我~
#2

我在山那边 回复 lenya9

d 的长度啊 d.itervalues()只是对d进行处理,还没有把处理后的结果赋给d
2016-02-10 回复 有任何疑惑可以回复我~
print list(d.itervalues()) #这样就可以以list的形式返回,得到你想要的结果


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

举报

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

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

进入课程

为什么print d.itervalues()不能执行,但print d.values()却能执行呢?

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