2017-06-26 55 views
2

我已經在列表中的科學格式的一系列數字:蟒蛇:在科學的格式將數字轉換爲字符串

A = [1e-2, 1e-3, 1e-4] 

我想要做的是改變成B:

B = ['1e-2','1e-3','1e-4'] 

我想轉換可以這樣做:

B = [str(A[ii]) for ii in range(len(A))] 

但它給:

B = ['0.01','0.001','0.0001'] 
+0

'格式(NUM, 「E」)'也許? –

+0

@ TadhgMcDonald-Jensen這實際上很整潔。不過,我自己試了一下,輸出:''1.000000e-02'。對我來說,* *是相同的,但不是*完全符合預期。不過,相當棒的真棒。不知道格式是否以這種方式表達數字。 – idjaw

+0

@ TadhgMcDonald-Jensen:如果你只需要一個數字,那麼你可以更加具體地使用格式函數 – jingweimo

回答

2

嘗試['{:.0e}'.format(float(x)) for x in A]

+3

你不需要'str.format',也不需要'float'調用。 '[A中的x的格式(x,'.0e')']也同樣適用。 – vaultah

+0

@vaultah:兩者都是很好的解決方案!但你的更好! – jingweimo