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]
表格是:
['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项(3月份的温度),但不知道我如何将它们转换成浮点数以便我可以得到总和
答案 0 :(得分:9)
只需使用map
:
>>> l = ["1.2", "2.4"]
>>> print map(float, l)
[1.2, 2.4]
>>>
答案 1 :(得分:1)
在您当前的代码中,您可以使用float
for line in lines:
month = line.split(' ')[0:]
march = float(month[2])
我认为更多的pythonic方式将是
sum([float(x.split(' ')[2]) for x in lines])
答案 2 :(得分:1)
列表理解将起到作用:
myListOfFloats = [float(i) for i in myListOfStrings]