时间:2021-05-22
本文实例讲述了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 osfiles = 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 CSVs = ('ACME', 50, 123.45)print(','.join(str(x) for x in s))# Data reduction across fields of a data structureportfolio = [ {'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函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
上文对数据结构与算法,有了一个简单的概述与介绍,这篇文章,我们介绍一中典型数据结构——线性结构。什么是线性结构,线性结构是最简单、最基本、最常用的数据结构。线性
上文对数据结构与算法,有了一个简单的概述与介绍,这篇文章,我们介绍一中典型数据结构——线性结构。什么是线性结构,线性结构是最简单、最基本、最常用的数据结构。线性
插入排序没事喜欢看看数据结构和算法,增加自己对数据结构和算法的认识,同时也增加自己的编程基本功。插入排序是排序中比较常见的一种,理解起来非常简单。现在比如有以下
本文所述的Python实现冒泡,插入,选择排序简单实例比较适合Python初学者从基础开始学习数据结构和算法,示例简单易懂,具体代码如下:#-*-coding:
本文实例讲述了JavaScript数据结构与算法之检索算法。分享给大家供大家参考,具体如下:javascript数据结构与算法---检索算法(顺序查找、最大最小