我是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
答案 0 :(得分:1)
您可以使用当前方法将文件读入行,然后将每行拆分为单独的列。
然后,您可以使用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