迭代csv文件

时间:2015-04-26 06:14:50

标签: python csv iteration python-3.3

我必须生成一个函数,该函数将返回包含该国家最高温度的元组以及记录该温度的城市列表。数据以格式输入为CSV文件:

Month, Jan, Feb, March....etc. 

到目前为止,我已设法获得最高温度,但当它试图找到发现该温度的城市时,它会显示为空列表。

def hottest_city(csv_filename):
    import csv
    file = open(csv_filename)
    header = next(file)
    data = csv.reader(file)
    city_maxlist = []
    for line in data:
        maxtemp = 0.0
        for temp in line[1:]:
            if float(temp >= maxtemp:
                maxtemp = float(temp)
        city_maxlist.append([maxtemp, line[0])
    maxtempcity = 0.0
    for city in city_maxlist:
        if city[0] >= maxtempcity:
            maxtempcity = city[0]
    citylist = []
    for line in data:
        for temp in line:
            if temp == maxtempcity:
                citylist.append(line[0])
    return (maxtempcity, citylist)

1 个答案:

答案 0 :(得分:0)

你的主要问题是“数据”是一个迭代器,所以你只能迭代它一次(你的第二个数据循环根本不循环)。

data = list(csv.reader(file))

应该有所帮助。然后就像Hans那样注意到,你没有提供你执行的代码,所以我让你在第二个循环中更正数据。