函数的参数传递
函数文档
lambda
map filter zip reduce enumerate
生成器与迭代器
装饰器
函数的参数传递
位置参数——关键字参数——可变数量参数
定义和传递的基本顺序
>>>def fun(a,b=6,*c,**d): c是元组 d是字典
print('a=',a,'b=',b,'c=',c,'d=',d)
>>>fun(1)
a=1,b=6,c=(),d={}
>>>fun(a=1,b=2,c=3,d=4)
a= 1 b= 2 c= () d= {'c': 3, 'd': 4}
函数文档
def 函数名([参数列表]):
‘’'注释‘’‘
函数体’
def fun(a,b=6,*c,**d):
'''这是函数'''
print('a=',a,'b=',b,'c=',c,'d=',d)
help(fun)
Help on function fun in module __main__:
fun(a, b=6, *c, **d)
这是函数
lambda
匿名函数
<函数名> = lambda <参数列表>:<表达式>
f = lambda x,y : x + y
相当于
def <函数名>(<参数列表>)
<函数体>
return <返回值列表>
临时使用的小函数
不能有复合语句
map/filter/zip/reduce/enumerate
map函数
做映射 第一个参数function以参数序列中的每一个元素调用function函数 返回包括每次函数function返回值的新列表
map(function,iterable,...)
iterable 序列
def square(x):
return x**2
map(square,[1,2,3,4,5,6])
<map at 0x23418fb8e80> 生成迭代器
def square(x):
return x**2
list(map(square,[1,2,3,4,5,6]))
[1, 4, 9, 16, 25, 36]
def square(x,y,z):
return x+y+z
list(map(square,[1,2,3],[1,2,3,4],[1,2,3,4,5]))
Out[26]: [3, 6, 9]
参数不等长 截断按最短的来计算
filter
filter()用于过滤序列,过滤掉不符合的元素
filter(function,iterable)
返回true和false
zip
zip(seq[,seq…])把两个或多个序列中的相应项合并在一起 以元组格式返回 ,处理完最短项就停止
a=[1,2,3]
b=[4,5,6]
list(zip(*(zip(a,b))))
[(1, 2, 3), (4, 5, 6)]
a=[1,2]
b=[3,4]
dict(zip(a,b))
{1: 3, 2: 4}
x= range(1,4)
y = range(4,7)
sum([i*j for i,j in zip(x,y)])
32
x='abcd'
y='abcde'
[i==j for i,j in zip(x,y)]
[True, True, True, True]
enumerate
enumerate(sequence,[start=0])
用于将一个可遍历的数据对象(列表,元组,字符串)组成一个索引序列 同时列出数据和数据下表,一般用在for循环
#reduce
from functools import reduce
def add(x,y):
return x+y
reduce(add,[1,2,3,4,5])
15