2016-12-17 5 views
0

ウェブ上のあらゆる場所文字列を整数に変換する方法を見つけることができますが、その逆は機能していないようです。このエラー(マップ(引数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() 
+0

hmmm true浮動小数点 –

答えて

0

zScoreはフロートになります。エラーメッセージに示されるように、map()への2番目の引数は、,strまたはtupleなど、iterableである必要があります。

私は何かが欠けていない限り、zScoreは常に単一の値であるので、あなたはおそらく、単純に逃げることができます:

str(zScore) 

私はあなたのプログラムの後半でzScoreを使用するかどうかはわかりませんけど、からあなたの例では、strを値のリストまたはタプルに適用する必要がない限り、mapを使用する利点はありません。あなたは自分の現在のコードは、問題のエラーを発生させる停止する場合

しかし、これを交換してみてください。これで

zScore = list(map(str, zScore)) 

zScore = map(str, [zScore]) 

また、map()はイテレータを返します。 、すべての値を一度に取得する必要がなければ、結果にlist()を呼び出す必要はありません。

関連する問題