如何将浮点数列表转换为字符串以附加到另一个列表

时间:2016-12-17 00:55:19

标签: python-3.x wing-ide

网络上的每个地方我都可以找到如何将字符串转换为整数,但相反的情况似乎并不起作用。有了这个错误(map()的参数2必须支持迭代)

我的整数:
 -0.707106781187
-1.0
-0.408248290464
0.0

我的代码的相关部分:

def calculateZscore(inFileName, outFileName):
    inputFile = open(inFileName,"r")  
    txtfile = open(outFileName, 'w')

for line in inputFile:
  newList = line.strip().split(',')
  obsExp = newList[-2:]
  obsExp = list(map(int, obsExp))
  obs = obsExp[0]
  exp = obsExp[1]
  zScore = (obs - exp) / math.sqrt(exp)
  zScore = list(map(str, zScore))    
  print zScore

if __name__ == "__main__":
   main() 

1 个答案:

答案 0 :(得分:0)

看起来zScore将是一个浮点数。正如您的错误消息所示,map()的第二个参数必须是iterable(例如liststrtuple)。

除非我遗漏了某些内容,zScore总是一个值,所以你可能只是简单地逃脱:

str(zScore)

我不确定您打算在以后的程序中使用zScore,但根据您的示例中的内容,我发现使用map时没有任何优势,除非您需要将str应用于列表或元组值。

但是,如果您只是希望当前代码停止引发相关错误,请尝试将其替换为:

zScore = list(map(str, zScore)) 

用这个:

zScore = map(str, [zScore]) 

此外,map()将返回一个迭代器,因此除非您需要一次获取所有值,否则无需在结果上调用list()