Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例


Posted in Python onMarch 23, 2018

本文实例讲述了Python同时对数据做转换和换算处理操作。分享给大家供大家参考,具体如下:

问题:我们需要调用一个换算函数(例如sum()min()max()),但是首先需对数据做转换或者筛选处理

解决方案:非常优雅的方法---在函数参数中使用生成器表达式

例如:

# 计算平方和
nums=[1,2,3,4,5]
s1=sum((x*x for x in nums))
s2=sum(x*x for x in nums) #更优雅的用法
s3=sum([x*x for x in nums]) #不使用生成器表达式
print(s1)
print(s2)
print(s3)
# 判断一个目录下是否存在.py文件
import os
files = os.listdir(os.path.expanduser('~'))
print (files)
if any(name.endswith('.py') for name in files):
  print('There be python!')
else:
  print('Sorry, no python.')
# Output a tuple as CSV
s = ('ACME', 50, 123.45)
print(','.join(str(x) for x in s))
# Data reduction across fields of a data structure
portfolio = [
  {'name':'GOOG', 'shares': 50},
  {'name':'YHOO', 'shares': 75},
  {'name':'AOL', 'shares': 20},
  {'name':'SCOX', 'shares': 65}
]
min_shares = min(s['shares'] for s in portfolio)
print(min_shares)
min_shares2 = min(portfolio,key=lambda s:s['shares']) #使用生成器表达式
print(min_shares2)

运行结果:

55
55
55
['.idlerc', '.oracle_jre_usage', 'AppData', 'Application Data', 'Contacts', 'Cookies', 'Desktop', 'Documents', 'Downloads', 'Favorites', 'HelloWorld', 'HelloWorld.zip', 'Links', 'Local Settings', 'log.html', 'Music', 'My Documents', 'mysite', 'mysite.zip', 'NetHood', 'NTUSER.DAT', 'ntuser.dat.LOG1', 'ntuser.dat.LOG2', 'NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TM.blf', 'NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TMContainer00000000000000000001.regtrans-ms', 'NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TMContainer00000000000000000002.regtrans-ms', 'ntuser.ini', 'output.xml', 'Pictures', 'pip', 'PrintHood', 'Recent', 'report.html', 'Saved Games', 'Searches', 'SendTo', 'Templates', 'Videos', '「开始」菜单']
Sorry, no python.
ACME,50,123.45
20
{'shares': 20, 'name': 'AOL'}

总结:

该方案展示了当把生成器表达式作为函数的参数时在语法上的一些微妙之处(即,不必重复使用圆括号),比如,如下的两行代码表示的是同一个意思:

s=sum((x*x for x in nums))
s=sum(x*x for x in nums) #更优雅的用法
s3=sum([x*x for x in nums]) #不使用生成器表达式

比起首先创建一个临时列表,使用生成器做参数更为高效和优雅。

(代码摘自《Python Cookbook》)

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
详解Python中列表和元祖的使用方法
Apr 25 Python
Python3访问并下载网页内容的方法
Jul 28 Python
Python查找两个有序列表中位数的方法【基于归并算法】
Apr 20 Python
解决phantomjs截图失败,phantom.exit位置的问题
May 17 Python
Django中的文件的上传的几种方式
Jul 23 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
对Python中Iterator和Iterable的区别详解
Oct 18 Python
Python UnboundLocalError和NameError错误根源案例解析
Oct 31 Python
python与字符编码问题
May 24 Python
如何基于python实现脚本加密
Dec 28 Python
Keras实现将两个模型连接到一起
May 23 Python
浅谈matplotlib中FigureCanvasXAgg的用法
Jun 16 Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 #Python
python微信公众号开发简单流程
Mar 23 #Python
python3如何将docx转换成pdf文件
Mar 23 #Python
python实现csv格式文件转为asc格式文件的方法
Mar 23 #Python
python字典快速保存于读取的方法
Mar 23 #Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
Mar 23 #Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 #Python
You might like
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
深入php var_dump()函数的详解
2013/06/05 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
PHP错误机制知识汇总
2016/03/24 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
jqPlot Option配置对象详解
2009/07/25 Javascript
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
python中时间模块的基本使用教程
2019/05/14 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
python pygame实现球球大作战
2019/11/25 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
python em算法的实现
2020/10/03 Python
The North Face北面法国官网:美国著名户外品牌
2019/11/01 全球购物
后勤自我鉴定
2013/10/13 职场文书
护士求职推荐信范文
2013/11/23 职场文书
论文指导教师评语
2014/04/28 职场文书
销售员岗位职责
2014/06/09 职场文书
新课培训心得体会
2014/09/03 职场文书
2014离婚协议书范文
2014/09/10 职场文书
2014年财政局工作总结
2014/12/09 职场文书
革命电影观后感
2015/06/18 职场文书