python3 map函数和reduce函数的实例:1)字符串转换整数; 2)字母大小写转换
2018-02-01 19:53
1321 查看
# -*- coding: utf-8 -*- from functools import reduce ''' 练习一: 自己写一个函数,实现字符串转换为整数 {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9} 例如: '123456' 返回 123456数字 使用map和reduce函数 ''' # 字符串也可以使用map函数遍历,让每一个字符都执行一次int函数 # list1 = list(map(int, '123456')) ''' 转换过程: 1.先将字符串传入char_number函数中,在函数中,根据传入的字符串,在字典中作为key取出对应的数字,并返回,使用map()让要转换字符串中的每一个字符都执行一次char_number函数,执行完成后会得到一个存放列表,列入[1,2,3,4,5,6] 2.使用reduce做累加,在累加函数中,让传入的第一个参数*10+第二个参数,依次执行,得到123456 ''' # 定义一个函数,将字符串转换为一个一个的数字 def char_number(string): # 存放字符串数字的key,对应的值为数字 char_dict = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9} # 根据传递进来的字符串,作为key取出对应的数字 number = char_dict[string] # 返回取出的数字 return number # 转换列表 rs = list(map(char_number,'123456')) # 将[1,2,3,4,5,6]组合起来,得到123456 def result(x,y): # 让x*10+y num = x * 10 + y return num # 在python3中需要引入reduce from functools import reduce # 使用reduce函数调用 rs = reduce(result,rs) # 用lambda写简单的函数 # rs2 = reduce(lambda x,y:x * 10 + y,rs2) print (rs) print (type(rs)) # 定义一个INT(string)函数 # 闭包 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[s] return num rs = list(map(char_number,string)) # 累加 number = reduce(lambda x,y:x*10+y,rs) # 返回转换之后的整数 return number number = INT('123456') print (number) print (type(number)) ''' 练习二: 使用map()和reduce()函数实现 自己实现一个函数,类似于upper()或lower()函数的功能 例如: string = 'ABCDEFG' 转换之后 string = 'abcdefg' ''' # 大写转小写 # ABCDEFG 转换为 abcdefg ''' 1.把ABCDEFG每一个字符转换为小写,根据传入的字符从字典中取值,如果字典中没有这个key,使用dict.get(key,default) 如果没有key,取出default值 2.将获取的字符串累加 ''' def LOWER(string): # 定义一个转换为小写的函数 def char_lower(s): char_dict = {'A':'a','B':'b','C':'a','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作为key取出小写字母 # 根据s取值,如果没有s这个key,说是小写的或是其他的数字之类的,直接返回这个结果 char = char_dict.get(s,s) return char rs_a = list(map(char_lower,string)) print (rs_a) # 累加 rs_a = reduce(lambda x,y:x+y,rs_a) print (rs_a) print (type(rs_a)) LOWER('ADFnnn**')
相关文章推荐
- Python字符串、整数、和浮点型数相互转换实例
- python小练习之将字符串转换成第一个字母大写后面字母小写的形式
- Python-常用字符串转换实例
- python 数字类型和字符串类型的相互转换实例
- PHP将字符串首字母大小写转换的实例
- 利用python中的hex()函数把整数转换成一个十六进制的字符串
- java/python中获取当前系统时间,并与字符串相互转换格式,或者转化成秒数,天数等整数
- Python 字符串 转换 整数 浮点数 数字
- python 字符串和整数,浮点型互相转换
- JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
- Python日期时间对象转换为字符串的实例
- 字符串转换为整数 字符串大小写转换
- Python3基础 str str()将整数,小数转换成字符串。 输入一个小数,显示整数部分与小数部分
- Python 字符串字母大小写转换
- python 字符串和整数的转换方法
- Python 字符串(三)-字符串操作实例(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- python中整数,浮点数和字符串的转换
- Python基本语法实例:文件处理,字符串转换
- Python 字符串 转换 整数 浮点数 数字
- Python时间戳与时间字符串互相转换实例代码