目录
input函数:
lambda()函数:匿名函数
repr()函数:
type函数:判断变量类型
map函数:
filter函数:
reduce函数:
捕获的是最原始的输入,将所 有的输入按照字符串进行处理,并返回一个字符串,不包含回车。
>>> a = input('input a number:')
input a number:10
>>> len(a)
2
>>> type(a)
>>> input(2+2)
4
语法:lambda [arg1 [, agr2,.....argn]] : expression
代码示例:
def make_repeater(n):
return lambda s: s*n
twice = make_repeater(2)
print (twice('word'))
print (twice(5))
取得对象的规范字符串表示。 其实调用的是对象里面的__repr__()方法
>>> s=repr([1,2,3])
>>> eval(s)
[1, 2, 3]
>>> s=repr((1,2,3))
>>> eval(s)
(1, 2, 3)
将序列中的每一个元素都应用某个函数方法,结果返回一个可迭代的map对象
map无法处理对应位置操作数类型不一致的情况,这种情况都会报类 型错误,但是对于对应位置长度不一致的情况,可以处理,对应到多少 就处理多少。
代码示例:#当对应位置的数据类型不一致时
#coding=utf-8
res = map(lambda x , y : (x ** y, x + y), [2,4,6],[3,2,'a'])
for i in res:
print(i)
代码示例:#当多个序列的长度不一致时
#coding=utf-8
r = map(lambda x , y : (x ** y, x + y), [2,4,6],[3,2,4,5])
for i in r:
print(i)
代码示例:将大写字母转换为小写
print(list(map(lambda x:x.lower(),['A','B','C'])))
可以对序列做过滤处理,就是说可以使用一个自定的函数过滤一个 序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果做过滤。最 终一次性返回过滤后的结果以生成器方式生成。
filter()函数有两个参数: 第一个,自定函数名,必须的 ;第二个,需要过滤的列,也是必须的
代码示例:输出给定字符串中的小写字母
#方法一:islower()
print(list(filter(lambda x:x.islower(),'ABCabxd')))
#方法一:自定义的函数
def is_lower(a):
if a>='a' and a<='z':
return True
print(list(filter(is_lower,'ABCabxd')))
reduce内建函数是一个二元操作函数,他用来将一个数据集合(链表,元组 等)中的所有数据进行下列操作:用传给reduce中的函数 func()(必须是一个二元操作函数)先对集合中的第1,2个数据进行操作,得到的结果再与第 三个数据用func()函数运算,最后得到一个结果,python3中不能直接使用,需要按如下方式导入:
from functools import reduce
代码示例:列表元素求和
#coding=utf-8
from functools import reduce
a = [1,2,3,4,5]
print (reduce(lambda x,y:x+y,a))
代码示例:数字字符串转换为对应的数字
#coding=utf-8
from functools import reduce
def fn(x, y):
return x * 10 + y
def char2num(s):
return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]
print(reduce(fn, map(char2num, '13579'))) # 1:1*10+3 =13
# 2:13*10+5=135
# 3:135*10+7=1357
# 4:1357*10+9 =13579