數(shù)據(jù)分析python技能之字符串轉(zhuǎn)整數(shù)

在數(shù)據(jù)處理的過程中,經(jīng)常需要從各種各樣的數(shù)據(jù)中提取自己需要的數(shù)據(jù)。

現(xiàn)在遇到一個問題如下:

將某個字符串格式的字段s轉(zhuǎn)換成整數(shù)做一些運(yùn)算,如果字段內(nèi)容是非數(shù)字的格式,那么就轉(zhuǎn)換成0。

這里暫時先不考慮負(fù)數(shù)和浮點數(shù)以及各種16進(jìn)制相關(guān)的數(shù)字的情況。


在python中字符串轉(zhuǎn)換為整數(shù)非常簡單,只需要一個int即可。

x = int(s)

But,在代碼中直接這么寫會出問題的。

如果s是一個' ',或者一個非數(shù)字格式的值,比如'fuck',那么python程序會拋出異常。

ValueError: invalid literal for int() with base 10: 'fuck'

這篇文章的主旨是如何優(yōu)雅的處理這種情況。

我們追求的是「Pythonic, Clearest, Powerful One Line Code.」

None Pythonic的做法是直接捕捉ValueError錯誤:

try:
    x = int(s)
except ValueError as e:
    x = 0

Pythonic的做法是:

x = int(s) if s.isdigit() else 0

這就是python的強(qiáng)大簡潔之處。


最后有一個問題:

如何用最優(yōu)雅的方式判斷一個string是否為numberic?考慮正數(shù),負(fù)數(shù),浮點數(shù),科學(xué)計數(shù)法,各種進(jìn)制表示方式?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容