从文本fi中查找最小值

2024-03-29 14:43:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的新手,我正在尝试找出如何让我的程序在从文件中读取特定列和每行之后找到最小值。有人能帮我吗?你知道吗

This is how an example of how my text file looks like:

05/01   80     2002     5       1966    19   2000   45     2010   
06/22   77     1980     4       1945    22   1986   58     2000

---------------------------------------------------------------------------

Day     Max  Year      Min      Year     Max   Year   Min    Year

---------------------------------------------------------------------------
08/01   79     2002     8       1981     28   1900    54    1988   
08/02   79     1989     5       1971     31   1994    60    1998

这是我的代码(下面),我到目前为止。你知道吗

def main () 
    file = open ('file.txt', 'r')
    for num in file.read().splitlines():
       i = num.split()

       if len(i) > 5:
           print('Day:{}\n' .format(i[0]))
           print('Year:{}\n' .format(i[2]))
           print('Lowest Temperature:{}'.format(i[1]))

这是我从代码中得到的输出。(同时打印文本):

Day:Day
Year:Year
Lowest Temperature:Max

Day: 3/11
Year:1920
Lowest Temperature:78

Day:11/02
Year:1974
Lowest Temperature:80

Day:11/03
Year:1974
Lowest Temperature:74

我试图从我的文本文件中找到最低温度,并打印出与该温度相关的日期和年份。我的输出应该是这样的。感谢所有愿意帮助我的人。你知道吗

Day:10/02      
Year:1994                  
Lowest Temperature:55        

Tags: 代码程序formatminthisyearnummax
1条回答
网友
1楼 · 发布于 2024-03-29 14:43:45

可以使用当前方法将文件读入行,然后将每行拆分为单独的列。你知道吗

然后可以使用min(),使用包含最低温度的列(在本例中是第3列)作为min()的键。你知道吗

with open('test.txt') as f:
  data = f.read().splitlines()
  data = [i.split() for i in data if any(j.isdigit() for j in i)]
  data = min(data, key=lambda x: int(x[3]))
  print('Day: {}\nYear: {}\nLowest Temperature: {}' .format(data[0], data[2], data[3]))

示例文件的输出:

Day: 06/22
Year: 1980
Lowest Temperature: 4

相关问题 更多 >