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通过smpt发送邮件的方法
Apr 30 Python
Django中的“惰性翻译”方法的相关使用
Jul 27 Python
Python提取Linux内核源代码的目录结构实现方法
Jun 24 Python
Python中常用信号signal类型实例
Jan 25 Python
Python二叉树定义与遍历方法实例分析
May 25 Python
Python程序包的构建和发布过程示例详解
Jun 09 Python
python利用re,bs4,requests模块获取股票数据
Jul 29 Python
python超时重新请求解决方案
Oct 21 Python
python实现Oracle查询分组的方法示例
Apr 30 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
python 递归相关知识总结
Mar 03 Python
Python进程间的通信之语法学习
Apr 11 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
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
js验证输入是否为手机号码或电话号码示例
2013/12/30 Javascript
javascript生成随机大小写字母的方法
2014/02/20 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
AngularJS入门教程之模块化操作用法示例
2016/11/02 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
js数据类型检测总结
2018/08/05 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
[57:50]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第二局
2016/03/05 DOTA
Python学习资料
2007/02/08 Python
Python实现控制台输入密码的方法
2015/05/29 Python
python获取外网IP并发邮件的实现方法
2017/10/01 Python
python实现读取excel写入mysql的小工具详解
2017/11/20 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
python 画函数曲线示例
2019/12/04 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
英国高级百货公司:Harvey Nichols
2017/01/29 全球购物
中间件分为哪几类
2016/09/18 面试题
党支部意见范文
2015/06/02 职场文书
宾馆安全管理制度
2015/08/06 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书