基础部分
map,reduce,filter,sort,推导式
自定义字符串转数字方法一不适用reduce
import re
def str2int(s):
if not re.match(r'^\d+$',s):
raise ValueError('请检查数字格式是否正确')
else:
digital={'0':0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}
int_list = list(map(lambda k:digital[k] or 0,s))
sum=0
for i,v in enumerate(int_list):
sum+=v*(10**(len(int_list)-i-1))
return sum
print(str2int('456'))
自定义字符串转数字方法二使用reduce
from functools import reduce
import re
def str2int(s):
if not re.match(r'^\d+$',s):
raise ValueError('请检查数字格式是否正确')
else:
digital={'0':0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}
int_list = list(map(lambda k:digital[k] or 0,s))
return reduce(lambda a,b:a+b,[v*(10**(len(int_list)-i-1))for i,v in enumerate(int_list)])
print(str2int('456'))