2013-07-31 36 views
2
名單
def avg_temp_march(f): 
    """(file open for reading) -> float 

    Return the average temperature for the month of March 
    over all years in f. 
    """ 
    file = open(f, 'r') 

    file.readline() 
    file.readline() 
    file.readline() 

    lines = file.read().strip().split('\n') 
    file.close 

    for line in lines: 
     month = line.split(' ')[0:] 
     march = month[2] 

表是:如何改變海峽名單在float

['24.7', '25.7', '30.6', '47.5', '62.9', '68.5', '73.7', '67.9', '61.1', '48.5', '39.6', '20.0'] 
['16.1', '19.1', '24.2', '45.4', '61.3', '66.5', '72.1', '68.4', '60.2', '50.9', '37.4', '31.1'] 
['10.4', '21.6', '37.4', '44.7', '53.2', '68.0', '73.7', '68.2', '60.7', '50.2', '37.2', '24.6'] 
['21.5', '14.7', '35.0', '48.3', '54.0', '68.2', '69.6', '65.7', '60.8', '49.1', '33.2', '26.0'] 
['19.1', '20.6', '40.2', '50.0', '55.3', '67.7', '70.7', '70.3', '60.6', '50.7', '35.8', '20.7'] 
['14.0', '24.1', '29.4', '46.6', '58.6', '62.2', '72.1', '71.7', '61.9', '47.6', '34.2', '20.4'] 
['8.4', ' 19.0', '31.4', '48.7', '61.6', '68.1', '72.2', '70.6', '62.5', '52.7', '36.7', '23.8'] 
['11.2', '20.0', '29.6', '47.7', '55.8', '73.2', '68.0', '67.1', '64.9', '57.1', '37.6', '27.7'] 
['13.4', '17.2', '30.8', '43.7', '62.3', '66.4', '70.2', '71.6', '62.1', '46.0', '32.7', '17.3'] 
['22.5', '25.7', '42.3', '45.2', '55.5', '68.9', '72.3', '72.3', '62.5', '55.6', '38.0', '20.4'] 
['17.6', '20.5', '34.2', '49.2', '54.8', '63.8', '74.0', '67.1', '57.7', '50.8', '36.8', '25.5'] 
['20.4', '19.6', '24.6', '41.3', '61.8', '68.5', '72.0', '71.1', '57.3', '52.5', '40.6', '26.2'] 

我已經找到了如何讓每個列表的第3項(三月份的溫度),但不要「知道我怎麼轉換成他們花車,這樣我可以得到的總和

+0

'file.close'不關閉文件。 – Blender

+0

函數中的return語句在哪裏? –

+0

我沒有把這個放在我的答案中,因爲它與這個問題無關,但是你可能想查看打開文件的'with'關鍵字。它更乾淨,完成後自動關閉文件。 – iCodez

回答

1

在當前的代碼,你可以只使用float

for line in lines: 
    month = line.split(' ')[0:] 
    march = float(month[2]) 

我想更多的Python的方式將

sum([float(x.split(' ')[2]) for x in lines]) 
9

只需使用map

>>> l = ["1.2", "2.4"] 
>>> print map(float, l) 
[1.2, 2.4] 
>>> 
+0

你打敗了我 – Stephan

1

列表解析會做的伎倆:

myListOfFloats = [float(i) for i in myListOfStrings] 
相關問題