在網路爬蟲或者讀取檔案中的資料時,很多時候讀取出來的數值是字串形式的,這些字串形式的資料並不能用來作計算或者更深入的操作,因此我們需要把他們轉換為數值的形式。
假設,這裡有乙個以字串形式儲存數值的列表,具體如下:
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 問題 一段訊息裡面的單詞數計數。寫乙個函式,當單詞...