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中的tkinter模块作图的方法
Feb 07 Python
Django 前后台的数据传递的方法
Aug 08 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
python实现将读入的多维list转为一维list的方法
Jun 28 Python
Python自动发送邮件的方法实例总结
Dec 08 Python
Python绘制二维曲线的日常应用详解
Dec 04 Python
Python类中self参数用法详解
Feb 13 Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
Jan 29 Python
PyQt5实现多张图片显示并滚动
Jun 11 Python
Python中Selenium对Cookie的操作方法
Jul 09 Python
python装饰器代码解析
Mar 23 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
2020年4月新番动漫目录 官方宣布4月播出的作品一览
2020/03/08 日漫
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
js的.innerHTML = ""IE9下显示有错误的解决方法
2013/09/16 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
JavaScript循环_动力节点Java学院整理
2017/06/28 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
彻底理解Python list切片原理
2017/10/27 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
PHP实现发送和接收JSON请求
2018/06/07 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
python 实现手机自动拨打电话的方法(通话压力测试)
2019/08/08 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
全球虚拟主机商:HostGator
2017/02/06 全球购物
Ramy Brook官网:美国现代女装品牌
2019/06/18 全球购物
Servlet面试题库
2015/07/18 面试题
平面设计师的工作职责
2013/11/21 职场文书
物业保安员岗位职责制度
2014/01/30 职场文书
九年级英语教学反思
2014/01/31 职场文书
机关出纳岗位职责
2014/04/03 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
学习普通话的体会
2014/11/07 职场文书