Python values()与itervalues()的用法详解


Posted in Python onNovember 27, 2019

dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list,这样,我们迭代的就是 dict的每一个 value:

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
print d.values()
# [85, 95, 59]
for v in d.values():
  print v
# 85
# 95
# 59

如果仔细阅读Python的文档,还可以发现,dict除了values()方法外,还有一个 itervalues() 方法,用 itervalues() 方法替代 values() 方法,迭代效果完全一样:

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
print d.itervalues()
# <dictionary-valueiterator object at 0x106adbb50>
for v in d.itervalues():
  print v
# 85
# 95
# 59

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

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

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

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

任务

给定一个dict:

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

请计算所有同学的平均分。

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

sum = 0.0
i = 0
for s in d.itervalues():
  sum += s
  i += 1
print sum/i
#78.25

以上这篇Python values()与itervalues()的用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中用pycurl监控http响应时间脚本分享
Feb 02 Python
详细探究Python中的字典容器
Apr 14 Python
使用Python的Django框架实现事务交易管理的教程
Apr 20 Python
python实现的AES双向对称加密解密与用法分析
May 02 Python
python3操作mysql数据库的方法
Jun 23 Python
python递归打印某个目录的内容(实例讲解)
Aug 30 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
Nov 23 Python
VTK与Python实现机械臂三维模型可视化详解
Dec 13 Python
python 正确保留多位小数的实例
Jul 16 Python
python requests更换代理适用于IP频率限制的方法
Aug 21 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
Pycharm自带Git实现版本管理的方法步骤
Sep 18 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 #Python
对python中assert、isinstance的用法详解
Nov 27 #Python
浅析python,PyCharm,Anaconda三者之间的关系
Nov 27 #Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 #Python
python利用dlib获取人脸的68个landmark
Nov 27 #Python
python随机数分布random均匀分布实例
Nov 27 #Python
python取均匀不重复的随机数方式
Nov 27 #Python
You might like
一篇有意思的技术文章php介绍篇
2010/10/26 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
PHP通过文件路径获取文件名的实例代码
2018/10/14 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
Maps Javascript
2007/01/22 Javascript
Javascript select下拉框操作常用方法
2009/11/09 Javascript
一个简单的js动画效果代码
2010/07/20 Javascript
JS防止用户多次提交的简单代码
2013/08/01 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
2014/02/26 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
jQuery简单实现彩色云标签效果示例
2016/08/01 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
2019/02/21 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
[03:14]2014DOTA2西雅图国际邀请赛 EG战队巡礼
2014/07/07 DOTA
python处理中文编码和判断编码示例
2014/02/26 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
Python发展简史 Python来历
2019/05/14 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
python wsgiref源码解析
2021/02/06 Python
HTML5文档结构标签
2017/04/21 HTML / CSS
汽车技术服务与贸易专业求职信
2014/07/20 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
先进教师事迹材料
2014/12/16 职场文书
python小程序之飘落的银杏
2021/04/17 Python
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript