1. 程式人生 > >Python之str型轉成int型

Python之str型轉成int型

port bsp char pan func tool fun lam lambda

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,就一行代碼哦,夠簡單!

Python之str型轉成int型