Python如何在列表中查找max元素

时间:2014-10-02 07:04:33

标签: python list max element

我试图从数据文件中找到最大降雨量。 [4]元素中的沉淀列为1340行长文件。 以下是文件中一行数据的示例:

Date,Day,High T,Low T,Precip,Snow,Snow Depth
1/1/10,1,41,19,0,0,5

这是我试图找到max_precip的循环:

for line in fo:
    max_precip = max(line.split(",")[4])

非常感谢任何帮助或指导。谢谢你们!

2 个答案:

答案 0 :(得分:5)

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

 max_precip = max(fo, key=lambda line: int(line.split(',')[4]))

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

请注意,您可能需要查看csv module以便为您处理逗号分割。

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

 max_precip = max(int(line.split(',')[4]) for line in fo)

演示:

>>> 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

答案 1 :(得分:1)

  

我试图从数据文件中找到最大降雨量。

如果这是您想要的,您可能需要预先处理您的数据,然后再转到内置的max功能。

max_precip = max(int(line.split(',')[4]) for line in fo)