手记

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

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) 就行

0人推荐
随时随地看视频
慕课网APP