如何将浮点数列表转换为字符串以附加到另一个列表
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(例如 list
、str
或 tuple
)。
除非我遗漏了什么,否则 zScore
始终是单个值,因此您可以简单地逃脱:
str(zScore)
我不确定您稍后打算如何在您的程序中使用 zScore
,但是从您的示例中我看不出使用 map
有任何优势,除非您需要将 str
应用于值的列表或元组。
但是,如果您只想让当前代码停止引发相关错误,请尝试替换为:
zScore = list(map(str, zScore))
有了这个:
zScore = map(str, [zScore])
此外,map()
将 return 一个迭代器,因此无需对结果调用 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(例如 list
、str
或 tuple
)。
除非我遗漏了什么,否则 zScore
始终是单个值,因此您可以简单地逃脱:
str(zScore)
我不确定您稍后打算如何在您的程序中使用 zScore
,但是从您的示例中我看不出使用 map
有任何优势,除非您需要将 str
应用于值的列表或元组。
但是,如果您只想让当前代码停止引发相关错误,请尝试替换为:
zScore = list(map(str, zScore))
有了这个:
zScore = map(str, [zScore])
此外,map()
将 return 一个迭代器,因此无需对结果调用 list()
,除非您需要一次获取所有值。