【发布时间】:2016-09-03 18:41:10
【问题描述】:
我正在使用 python 从文件中读取数值天气数据,然后检查湿度条件。如果湿度小于或等于 75,则应将湿度改写为“低”,如果湿度大于 75,则应将其改写为“高”。以下是我在文件中的数据。
外观、温度、湿度、风、permission_to_play
- sunny,85,85,FALSE,no
- sunny,80,90,TRUE,no
- 阴天,83,86,假,是的
- rainy,70,96,FALSE,yes
- rainy,68,80,FALSE,yes
- rainy,65,70,TRUE,no
- 阴,64,65,真,是的
- sunny,72,95,FALSE,no
- sunny,69,70,FALSE,yes
- rainy,75,80,FALSE,yes
- sunny,75,70,TRUE,yes
- 阴天,72,90,真,是的
- 阴天,81,75,假,是的
- 下雨,71,91,真,不
我正在阅读列表中的这个文件,然后访问湿度值。以下是我写的代码。
def fetchData(fileName):
datalist = []
rd =open(fileName,mode='r')
list = rd.readlines()
for l in list:
subList = l.strip().split(',')
humidity=subList[2]
if humidity>75:
subList[2]="high"
else:
subList[2]="low"
datalist.append(subList)
return datalist
dataList = fetchData('weather.numeric.data')
print dataList
执行此操作后,数据编号 6、7、9、11、13 的湿度值应为低,其他应为高。但是所有的湿度值都在变高,如下面的输出所示。
[['sunny', '85', 'high', 'FALSE', 'no'], ['sunny', '80', 'high', 'TRUE', 'no'], ['overcast', '83', 'high', 'FALSE', 'yes'], ['rainy', '70', 'high', 'FALSE', 'yes'], ['rainy', '68', 'high', 'FALSE', 'yes'], ['rainy', '65', 'high', 'TRUE', 'no'], ['overcast', '64', 'high', 'TRUE', 'yes'], ['sunny', '72', 'high', 'FALSE', 'no'], ['sunny', '69', 'high', 'FALSE', 'yes'], ['rainy', '75', 'high', 'FALSE', 'yes'], ['sunny', '75', 'high', 'TRUE', 'yes'], ['overcast', '72', 'high', 'TRUE', 'yes'], ['overcast', '81', 'high', 'FALSE', 'yes'], ['rainy', '71', 'high', 'TRUE', 'no']]
我应该做出哪些改变? 提前致谢! :)
【问题讨论】:
-
您正在读取字符串并将它们与
ints 进行比较!在与75比较之前转换为int:humidity=int(subList[2])
标签: python list if-statement file-handling