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代码(逐级优化)
May 25 Python
Python版的文曲星猜数字游戏代码
Sep 02 Python
Python中列表、字典、元组、集合数据结构整理
Nov 20 Python
python实现自动更换ip的方法
May 05 Python
详解python 发送邮件实例代码
Dec 22 Python
python 类详解及简单实例
Mar 24 Python
在CentOS6上安装Python2.7的解决方法
Jan 09 Python
Python 统计字数的思路详解
May 08 Python
浅谈python中get pass用法
Mar 19 Python
python字典嵌套字典的情况下找到某个key的value详解
Jul 10 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
pycharm实现猜数游戏
Dec 07 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数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
jQuery ctrl+Enter shift+Enter实现代码
2010/02/07 Javascript
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
原生js实现五子棋游戏
2020/05/28 Javascript
[04:10]2018年度CS GO玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
全面解析Python的While循环语句的使用方法
2015/10/13 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
python模块导入的方法
2019/10/24 Python
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
元旦获奖感言
2014/03/08 职场文书
建房协议书
2014/04/11 职场文书
大学生应聘求职信
2014/05/26 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
2014入党积极分子批评与自我批评思想报告
2014/10/06 职场文书
营销计划书
2015/01/17 职场文书
2015新学期家长寄语
2015/02/26 职场文书
电视新闻稿
2015/07/17 职场文书
生日宴会祝酒词
2015/08/10 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
python中的被动信息搜集
2021/04/29 Python