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读写Json涉及到中文的处理方法
Sep 12 Python
Python贪吃蛇游戏编写代码
Oct 26 Python
Python request设置HTTPS代理代码解析
Feb 12 Python
matlab中实现矩阵删除一行或一列的方法
Apr 04 Python
浅谈Python在pycharm中的调试(debug)
Nov 29 Python
华为2019校招笔试题之处理字符串(python版)
Jun 25 Python
python变量命名的7条建议
Jul 04 Python
Python Django 前后端分离 API的方法
Aug 28 Python
解决pycharm上的jupyter notebook端口被占用问题
Dec 17 Python
python实现高斯投影正反算方式
Jan 17 Python
通过实例简单了解python yield使用方法
Aug 06 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 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 中的类
2006/10/09 PHP
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
关于PHP实现异步操作的研究
2013/02/03 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
JavaScript中的其他对象
2008/01/16 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
Angular2里获取(input file)上传文件的内容的方法
2017/09/05 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
vue axios请求拦截实例代码
2018/03/29 Javascript
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
Python 写入训练日志文件并控制台输出解析
2019/08/13 Python
Python 下载及安装详细步骤
2019/11/04 Python
Python可视化工具如何实现动态图表
2020/10/23 Python
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
计算机应用毕业生自荐信
2013/10/23 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
高中家长寄语
2014/04/02 职场文书
工商管理自荐书
2014/07/06 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
七一讲话心得体会
2014/09/05 职场文书
讲文明倡议书
2015/04/29 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
改造DE1103三步曲
2022/04/07 无线电