Python之str型轉成int型


str轉int:

1 def fn(x,y):
2     return x*10+y
3 
4 def char2num(s):
5     return {'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9}[s]  # 特別注意這里,后面還有個 [s]
6 
7 print(type(reduce(fn, map(char2num, '1738785'))))
8 print(reduce(fn, map(char2num, '1738785')))

輸出如下:

1 <type 'int'>
2 1738785

整理成一個 str2int 函數就是如下嘍:

 1 from functools import reduce
 2 
 3 def str2int(s):
 4     def fn(x,y):
 5         return x*10+y
 6     def char2num(s):
 7         return {'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9}[s]
 8     return reduce(fn,map(char2num,s))
 9 
10 print(str2int('365779'))
11 print(type(str2int('365779')))

 

用匿名函數lambda再簡化一下就成了下面這個樣子:

1 def str2int(s):
2     return reduce(lambda x,y:x*10+y, map(lambda s:{'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9}[s], s))

WOC,就一行代碼哦,夠簡單!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM