首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python如何在列表中找到max元素

Python如何在列表中找到max元素
EN

Stack Overflow用户
提问于 2014-10-02 07:04:32
回答 2查看 694关注 0票数 1

我想从数据文件中找出最大降雨量。一个1340行长文件中的4元素中的沉淀列。下面是文件中一行数据的示例:

代码语言:javascript
复制
Date,Day,High T,Low T,Precip,Snow,Snow Depth
1/1/10,1,41,19,0,0,5

下面是我试图找到max_precip的循环:

代码语言:javascript
复制
for line in fo:
    max_precip = max(line.split(",")[4])

如能提供任何帮助或指导,将不胜感激。谢谢你们!

EN

回答 2

Stack Overflow用户

发布于 2014-10-02 07:07:37

您需要将其应用于所有行,并且首先需要将降水值转换为整数:

代码语言:javascript
复制
 max_precip = max(fo, key=lambda line: int(line.split(',')[4]))

这将返回包含最大降水量的整条线。我假设你已经删除了标题行。

请注意,您可能需要查看 module来处理您的逗号拆分。

若要获得降水量最大值并忽略其他所有内容,请使用生成器表达式:

代码语言:javascript
复制
 max_precip = max(int(line.split(',')[4]) for line in fo)

演示:

代码语言:javascript
复制
>>> fo = '''\
... 1/1/10,1,41,19,0,0,5
... 1/2/10,1,38,18,2,0,6
... 1/3/10,1,43,17,1,0,6
... '''.splitlines()
>>> max(fo, key=lambda line: int(line.split(',')[4]))
'1/2/10,1,38,18,2,0,6'
>>> max(int(line.split(',')[4]) for line in fo)
2
票数 5
EN

Stack Overflow用户

发布于 2014-10-02 07:12:38

我想从数据文件中找出最大降雨量。

如果这是您想要的,那么在传递到内置的max函数之前,您可能需要对数据进行预处理。

代码语言:javascript
复制
max_precip = max(int(line.split(',')[4]) for line in fo)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26155852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档