gpt4 book ai didi

Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 28 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了Python同时对数据做转换和换算处理操作。分享给大家供大家参考,具体如下:

问题:我们需要调用一个换算函数(例如sum()、min()、max()),但是首先需对数据做转换或者筛选处理 。

解决方案:非常优雅的方法---在函数参数中使用生成器表达式 。

例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 计算平方和
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'} 。

总结:

该方案展示了当把生成器表达式作为函数的参数时在语法上的一些微妙之处(即,不必重复使用圆括号),比如,如下的两行代码表示的是同一个意思:

?
1
2
3
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程序设计有所帮助.

原文链接:http://www.cnblogs.com/apple2016/p/5751209.html 。

最后此篇关于Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例的文章就讲到这里了,如果你想了解更多关于Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com