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笔记(1) 关于我们应不应该继续学习python
Oct 24 Python
python网络编程之读取网站根目录实例
Sep 30 Python
详解Python中for循环的使用
Apr 14 Python
python中通过预先编译正则表达式提高效率
Sep 25 Python
浅谈python连续赋值可能引发的错误
Nov 10 Python
Python线上环境使用日志的及配置文件
Jul 28 Python
django ManyToManyField多对多关系的实例详解
Aug 09 Python
python ctypes库2_指定参数类型和返回类型详解
Nov 19 Python
Python实现随机生成任意数量车牌号
Jan 21 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 Python
keras训练浅层卷积网络并保存和加载模型实例
Jul 02 Python
python 8种必备的gui库
Aug 27 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转换颜色为其反色的方法
2015/04/27 PHP
PHP调试的强悍利器之PHPDBG
2016/02/22 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
九种js弹出对话框的方法总结
2013/03/12 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
js异步编程小技巧详解
2017/08/14 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
js实现弹窗效果
2020/08/09 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
python进程类subprocess的一些操作方法例子
2014/11/22 Python
Python去除字符串两端空格的方法
2015/05/21 Python
Python编程中对文件和存储器的读写示例
2016/01/25 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
Python中文件的读取和写入操作
2018/04/27 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
python实现多人聊天室
2020/03/31 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
Django实现发送邮件功能
2019/07/18 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
python selenium操作cookie的实现
2020/03/18 Python
幼儿园庆六一游园活动方案
2014/01/29 职场文书
毕业生自荐信格式
2014/03/07 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
个人党性分析材料
2014/12/19 职场文书
复兴之路纪录片观后感
2015/06/02 职场文书
2019行政前台转正申请书范文3篇
2019/08/15 职场文书
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android