【发布时间】:2015-11-20 08:05:01
【问题描述】:
我有两个来自 csv 文件的列表,我只想从另一个列表中减去它们。错误消息指示我将列表项转换为整数,但它们不是整数。我试图将它们转换为浮点数、整数等,但这些都不起作用。
如何找到我的列表当前包含的数据类型?通常不能在列表中使用浮动项目进行计算吗?我做错了什么?
打印的列表(似乎是不同的数据类型):
data_WL
>>> [' 0.4001000 ', '0.3966472 ', '0.4365047', '0.4950109', '0.5348455 ', '0.5816008 ']
res_movAvWL
>>> [0.3983736, 0.41657595000000003, 0.4657578, 0.5149282, 0.55822315]
我的代码:
from pylab import *
import csv
from scipy import stats
import numpy as np
mymin = [] # create a new array
data_WL1 = [ float(x) for x in data_WL ] # convert items to float
for i in arange(0,len(data_WL)- (0.5 * movAvWindow),1):
mymin.append=((data_WL1[i]) - (res_movAvWL[i])) # data_WL - movAvWL; detrended peak flood data
res_WLnet = mymin[:] # create a new array which has the same items as mymin
if int(res_WLnet[i]) < 0.8: # if netWL smaller than 0.8m print 0 in list res_WLnet, etc.
res_WLnet.append(0)
else:
if int(mymin[i]) < 1.10:
res_WLnet.append(1)
else:
res_WLnet.append(2)
print res_WLnet
谢谢!
【问题讨论】:
-
请尽量坚持每个帖子只问一个问题。我回答了你的错误。更清楚地说,是的,您可以使用浮点数在列表中进行计算。完全没问题。要找出某物是什么类型,请使用
isinstance(var, type)。有关它的详细信息,请参阅this question。