map()函数:接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
举例:
>>> a=map(int,'456621')
>>> a
<map object at 0x0000020F86336C88>
>>> list(a)
[4, 5, 6, 6, 2, 1]
格式map(f,iterable)
reduce()函数:把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
上面来自廖雪峰老师网站
将英文的人名修改为首字母大写,其它字母小写:
例如:[‘lisa’,‘HHHH’,‘jKhf’,‘dhaL’]
def normalize(name):
return name.capitalize() #capitalize方法:将单词的第一个字母变成大写其余小写
L1=['lisa','HHHH','jKhf','dhaL']
L2 = list(map(normalize, L1))
print(L2)
其余的:
str.upper() # 把所有字符中的小写字母转换成大写字母
str.lower() # 把所有字符中的大写字母转换成小写字母
str.capitalize() # 把第一个字母转化为大写字母,其余小写
str.title() # 把每个单词的第一个字母转化为大写,其余小写
用reduce写一个函数接受一个列表,计算元素的乘积:
from functools import reduce
def prod(L):
return reduce(lambda x, y: x * y, L)
>>>prod([1,2,3,4])
24
将一个数字组成的字符串转换为浮点数:
from functools import reduce
def str2float(s):
DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
def char2num(s):
return DIGITS[s]
l= s.split('.') #将字符串分为小数点前和后
s1 = l[0]
s2 = l[1]
a=reduce(lambda x, y: x * 10 + y, map(char2num, s1)) #计算小数点前的值
b=reduce(lambda x, y: x * 0.1 + y, map(char2num, s2[::-1])) #计算小数点后的值
return a+0.1*b
>>>str2float('3.1415')
3.1415