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

How to convert list of floats into strings to append to another list

我在网络上到处都可以找到如何将字符串转换为整数,但相反的方法似乎不起作用。出现此错误(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() 

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

除非我遗漏了什么,否则 zScore 始终是单个值,因此您可以简单地逃脱:

str(zScore)

我不确定您稍后打算如何在您的程序中使用 zScore,但是从您的示例中我看不出使用 map 有任何优势,除非您需要将 str 应用于值的列表或元组。

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

zScore = list(map(str, zScore)) 

有了这个:

zScore = map(str, [zScore]) 

此外,map() 将 return 一个迭代器,因此无需对结果调用 list(),除非您需要一次获取所有值。