最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

Python同时对数据做转换和换算的方法介绍与分析(附实例)

来源:懂视网 责编:小采 时间:2020-11-27 14:20:35
文档

Python同时对数据做转换和换算的方法介绍与分析(附实例)

Python同时对数据做转换和换算的方法介绍与分析(附实例):本篇文章给大家带来的内容是关于Python同时对数据做转换和换算的方法介绍与分析(附实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。1、需求我们需要调用一个换算函数(例如sum()、min()、max()),但首先得对数据做转换或者筛选2、
推荐度:
导读Python同时对数据做转换和换算的方法介绍与分析(附实例):本篇文章给大家带来的内容是关于Python同时对数据做转换和换算的方法介绍与分析(附实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。1、需求我们需要调用一个换算函数(例如sum()、min()、max()),但首先得对数据做转换或者筛选2、

本篇文章给大家带来的内容是关于Python同时对数据做转换和换算的方法介绍与分析(附实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1、需求

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

2、解决方案

有一种非常优雅地方案能够将数据换算和转换结合在一起:在函数参数中使用生成器表达式。

实例1:计算平方和:

nums=[1,2,3]
s=sum(x*x for x in nums)
print(s)

结果:

14

实例2:判断指定目录是否存在.py文件

import os
filename=os.path.dirname(os.path.abspath(__file__))
files1=os.listdir(filename+"/image")
files2=os.listdir(filename)
#any表示该iterable只要存在一个满足条件的,欧返回True,否则才返回False
if any(name.endswith('.py') for name in files1):
 print('存在py文件')
else:
 print('不存在py文件')
#any表示该iterable只要存在一个满足条件的,欧返回True,否则才返回False
if any(name.endswith('.py') for name in files2):
 print('存在py文件')
else:
 print('不存在py文件')

运行结果:

不存在py文件
存在py文件

实例3:根据字典某个key取最小值

marks=[
 {'age':18,'money':100},
 {'age':19,'money':500},
 {'age':17,'money':900},
 {'age':20,'money':1000},
]
min_mark=min(m['age'] for m in marks)
print(min_mark)

结果:

17

3、分析

这种解决方案展示了当把生成器表达式作为函数的单独参数时在语法上的一些微妙之处(即:不必重复使用符号)。例如下面两行代码表示的是同一个意思:

s=sum((x*x for x in nums))
s=sum(x*x for x in nums)

比起首先创建一个临时例表,使用生成器做参数通常是更为高效和优雅地方式。例如,如果不使用生成器表达式,可以考虑下面方法来计算平法和:

nums=[1,2,3]
s=sum([x*x for x in nums])
print(s)

这也能工作,但这引入了一个额外的步骤并且创建了额外的列表。对于小的一个列表。是无关紧要,但是如果nums非常巨大,那么就会创建一个庞大的临时数据结构,而且只用一次就被丢弃。

基于生成器的解决方案可以以迭代的方式转换数据,因此在内存使用上要高效得多。

某些特定的换算函数比如:min()和max()都可以接受一个key参数,当可能倾向于使用生成器时会很有帮助。例如在上面实例【根据字典某个key取最小值】时可以考虑下面的替代方案:

min_mark=min(marks,key=lambda m:m['age'])

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

Python同时对数据做转换和换算的方法介绍与分析(附实例)

Python同时对数据做转换和换算的方法介绍与分析(附实例):本篇文章给大家带来的内容是关于Python同时对数据做转换和换算的方法介绍与分析(附实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。1、需求我们需要调用一个换算函数(例如sum()、min()、max()),但首先得对数据做转换或者筛选2、
推荐度:
标签: 数据 的方法 换算
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top