Python 列表元素字串轉浮點

2021-08-21 21:07:35 字數 1692 閱讀 8880

在網路爬蟲或者讀取檔案中的資料時,很多時候讀取出來的數值是字串形式的,這些字串形式的資料並不能用來作計算或者更深入的操作,因此我們需要把他們轉換為數值的形式。

假設,這裡有乙個以字串形式儲存數值的列表,具體如下:

a = ['2', '3.5', '10', '88', '32.66']
我們需要將其轉換為浮點的形式,最簡單粗暴直接的方法,可以使用for 迴圈來處理,方法如下:

a_float = 

for num in a:

a_float

>> [2.0, 3.5, 10.0, 88.0, 32.66]

我們通過for 迴圈, 把列表中的每乙個數值都用float()函式將其轉換成浮點的形式,然後再將轉換後的值新增到乙個新列表中,最終我們即可得到乙個浮點值得列表。

如果我們每次都需要寫乙個for 迴圈,這樣一來顯得不優雅,二來**看起來也很冗長。我們也可以使用map()方法來處理。具體**如下:

a_float_m = map(float, a)

a_float_m

>> 0x109854da0>

a_float_m = list(a_float_m)

[2.0, 3.5, 10.0, 88.0, 32.66]

和剛才的for 迴圈對比,我們使用map()方法,只需要一行**就可以完成。這裡有一點需要注意,在 python2 中,map()返回的是列表,而在 python3 中,返回的是迭代器。因此,我們這裡如果想得到乙個列表,我們還需要使用以下list()

很多時候,我們的原始資料未必是那麼完美,假如我們原始的列表中,有一些不能轉換的資料,那情況將如何?接下來,我們對a列表進行一些改造。

a>> ['2', '3.5', '10', '88', '32.66', 'a']

接下來,我們還是對a使用map()方法:

a_float_new = list(map(float, a))

>> valueerror: could not convert string to float: 'a'

這時,我們的程式就報錯了,因為字串不能轉成浮點數值。如果我們還希望繼續完成這個轉換,我們就需要對改造一下處理的函式,具體**如下:

def

safe_float

(number):

try:

return float(number)

except:

return

none

a_float_new = list(map(safe_float, a))

a_float_new

>> [2.0, 3.5, 10.0, 88.0, 32.66, none]

我們先約定好,將不能轉換的值儲存為none,然後編寫了乙個safe_float()的方法進行處理,隨後再將這個函式傳到map()中,這樣,最後我們就能得到處理完成後的列表了。

Python 列表轉字串

問題描述 對於長度為5位的乙個01串,每一位都可能是0或1,一共有32種可能。它們的前幾個是 請按從小到大的順序輸出這32種01串。輸入格式 本試題沒有輸入。輸出格式 輸出32行,按從小到大的順序每行乙個長度為5的01串。樣例輸出 00000 00001 00010 00011 以下部分省略 實現 ...

Python 字串轉浮點型,列表轉字串

爬蟲過程中,採集的資料常以str或float存入資料庫 遇到含小數點的文字,需要轉換成浮點型xpath 或re.findall 提取資訊返回列表,列表可能為空,不便存進資料庫。a float 1.21 print a import numpy as np ls 1.2 3 0.5 array np....

Python 字串轉列表,列表轉字串

一般計算字串的數量,用len 方法就能實現,例如 str string len str 6 s,t,r,i,n,g 但是,當要計算單詞的數量時,該怎麼辦?sentence hello world and python len sentence 24 問題 一段訊息裡面的單詞數計數。寫乙個函式,當單詞...