# -*- coding: utf-8 -*- ''' 练习一: 自己写一个函数,实现字符串转换为整数 {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9} 例如: '123456' 返回 123456数字 使用map和reduce函数 ''' from functools import reduce ''' '123456' 转换为 123456 转换步骤: 1.将字符串中的每一个字符串执行char_number函数,根据传入的字符,从字典中取出对应的数字值,并返回 2.是reduce函数,将rs中的每一个数字进行累加,计算方式 x*10+y 第一次执行 1*10+2=12 第二次 12*10+3 =123 依次执行之后得到123456 ''' # 声明函数将字符串转为存放数字的列表:例如 [1,2,3,4,5,6] def char_number(string): # 字典存放字符0对应数字0,字符1对应数字1...... chars_dict = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9} # 根据传入的string,从字典中取出数字 number = chars_dict.get(string,string) # 返回数字 return number # 使用map()函数执行,得到[1,2,3,4,5,6] rs = list(map(char_number, '123456')) # 累加函数 def result(x, y): # 第一次执行 1*10+2=12 第二次 12*10+3 =123 依次执行之后得到123456 num = x * 10 + y # 返回 return num # rs= reduce(result, rs) # 使用lambda函数 rs = reduce(lambda x,y:x*10+y, rs) print(rs) print(type(rs)) # 封装函数版本 def INT(string): def char_number(s): chars_dict = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} num = chars_dict.get(s, s) return num rs = list(map(char_number, string)) rs = reduce(char_number, rs) return rs rs = INT('123456') print(rs) print(type(rs))# coding:utf-8 # 将所有字符串中的字符,全部转化为小写。即可以是一个单独的字符串,也可以是一个字符串列表。 # 1>先使用map()函数,将字符串中的每一个字符转化为小写; # 2>再使用reduce()函数,对map()函数返回的列表进行逻辑处理; # 如果是一个字符串,需要使用map()和reduce()组合; # 如果是一个字符串列表,只需要map()函数就可以了; def LOWER(string): # char_lower函数是作用到map()函数的。 def char_lower(s): # 将26个英文字母对应的小写字母,在字典中进行定义。 chars_dict = {'A': 'a', 'B': 'b', 'C': 'c', 'D': 'd', 'E': 'e', 'F': 'f', 'G': 'g', 'H': 'h', 'I': 'i' ,'J': 'j', 'K': 'k', 'L': 'l', 'M': 'm', 'N': 'n', 'O': 'o', 'P': 'p', 'Q': 'q', 'R': 'r','S': 's', 'T': 't', 'U': 'u', 'V': 'v', 'W': 'w', 'X': 'x', 'Y': 'y', 'Z': 'z'} # 根据s取值,如果取不到,就赋原值 char = chars_dict.get(s, s) return char rs = list(map(char_lower, string)) rs = reduce(lambda x,y:x+y, rs) return rs res = LOWER('AbCdEF') print res print(type(res))
字符串转换为整数
最新推荐文章于 2023-04-28 14:54:37 发布