继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

---迭代dict中的itervalues()与values()区别

呵哒哒
关注TA
已关注
手记 10
粉丝 4
获赞 14
d={'a':95,'b':85,'c':59,'d':74}
s=d.values()
print s
#输出结果为:
<dictionary-valueiterator object at 0x01256F60>
#s= d.values()
print s
#输出结果为:[95, 59, 85, 74]

求平均值:
方法一

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }
s=d.values() #写为s=d.itervalues()会怎样
sum = 0.0
for i in s :
    sum=sum+i
print sum/len(s)

方法二:

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

如果将方法一中的
s=d.values(),写成s=itervalues()
运行程序会出现错误:

```TypeError: object of type 'dictionary-valueiterator' has no len()
由此可见原因是 s 该类型 无len
将最后一句print sum/len(s)
修改为 print sum/len(d) 就行

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP