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

这个代码为什么不能用?len(d.itervalues())出错

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

sum = 0.0

for v in d.itervalues():

    sum = sum + v

print sum / len(d.itervalues())


正在回答

4 回答

在python3中itervalues()方法会报错,建议使用values().

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

你用这个你根本不知道长度呀,完全是想当然,value只是一个属性,并不是一个数据类型

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

可以直接使用 len(d)


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

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

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


如上所说,values可以用,因为他转成了一个list,list有对应的length,而itervalues没有转换,只是单单取出对应的value,value是int类型所以取得length 会报错

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

举报

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

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

进入课程

这个代码为什么不能用?len(d.itervalues())出错

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