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 相关文章推荐
windows系统中python使用rar命令压缩多个文件夹示例
May 06 Python
MySQL最常见的操作语句小结
May 07 Python
Python中字符串的常见操作技巧总结
Jul 28 Python
python中range()与xrange()用法分析
Sep 21 Python
python内置函数:lambda、map、filter简单介绍
Nov 16 Python
Pycharm远程调试openstack的方法
Nov 21 Python
用python代码将tiff图片存储到jpg的方法
Dec 04 Python
Python Web框架之Django框架文件上传功能详解
Aug 16 Python
Python正则表达式急速入门(小结)
Dec 16 Python
Python任务调度模块APScheduler使用
Apr 15 Python
编写python代码实现简单抽奖器
Oct 20 Python
OpenCV实现常见的四种图像几何变换
Apr 01 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
PHP 观察者模式的实现代码
2013/05/10 PHP
php环境无法上传文件的解决方法
2014/04/30 PHP
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
javascript闭包的理解
2015/04/01 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
NodeJS加密解密及node-rsa加密解密用法详解
2018/10/12 NodeJs
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
python多线程同步实例教程
2019/08/11 Python
pytorch:实现简单的GAN示例(MNIST数据集)
2020/01/10 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
美国女孩服装购物网站:Justice
2017/03/04 全球购物
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
大学生个人自我鉴定
2013/12/03 职场文书
办公室主任职责范本
2014/03/07 职场文书
原材料检验岗位职责
2014/03/15 职场文书
旅游安全协议书
2014/04/21 职场文书
食品安全承诺书
2014/05/22 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书