【发布时间】:2021-09-04 01:24:59
【问题描述】:
作为新程序员解决问题。问题是在 weather.csv 中,您会找到每日天气数据。编写程序读取文件,然后输出温度分布最小的天数(第一列)(第二列最高温度,第三列最低)。
我在这里公开了weather.csv文件https://docs.google.com/spreadsheets/d/1fMxCY_CdpdhDjMZZWGzyh-whEvZYxH2XiBfA4AfqZJw/edit#gid=0的列表
我尝试对列表进行排序,我尝试打印 min(day_spread),它返回“TypeError: 'int' object is not iterable”。我完全不知道从这里到哪里使用我的代码。谢谢!
编辑:我添加了 tot_spread 并将 day 设为 int。
import csv
with open("weather.csv", 'r') as infile:
reader = csv.reader(infile, delimiter=',')
header = next(reader)
for row in reader:
day = int(row[0])
max_weather = int(row[1])
min_weather = int(row[2])
day_spread = (max_weather - min_weather)
tot_spread = [day, day_spread]
print(min(tot_spread)
【问题讨论】:
-
你快到了。问题是,
day_spread只是一个数字,但min()将一个列表作为输入,并为您提供该列表中的最小值。 -
有道理,我添加了这个 tot_spread = [day, day_spread] print(min(tot_spread)) 但现在它打印了所有天,所以,我不认为我把它列在列表中,如果我是正确的?它是 4 个单独的列表?我还把 day 改成了 int
-
好的,我的意思是暗示
reader是一个可迭代的(几乎是一个列表)。这是正确的方向,但让我发布一个答案(我不想引起更多混乱)