函数定义语法
def 函数名([参数名]):
```注释```
函数体
lambda匿名函数
<函数名>=lambda<参数>:<表达式>
>>> sorted(['abc','afe','acb'],key=lambda x:(x[0],x[2]))
['acb', 'abc', 'afe']
可以定义有名字的的函数。
lambda 是为了减少单行函数的定义而存在的
range函数
描述
range()可创建一个整数列表,一般在for循环中。
语法
range(stop)
range(start,stop[,step])
参数说明
- start:计数从start开始。默认从0开始。
>>> range(5)
range(0, 5)
- stop:计数到stop结束,但不包括stop(要头不要尾)。
>>> list(range(0,5))
[0, 1, 2, 3, 4]
- step:步长,默认是1。例如range(0,5)等价于range(0,5,1)。
map函数
描述
- map()会根据提供的函数对指定序列做映射。
- 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
语法
map(function,iterable,…)
参数说明
- function–函数
- iterable–一个或多个序列
def square(x):
return x ** 2
map(square,[1,2,3,4,5])
<map at 0x12cfab452b0>#输出迭代器
def square(x):#计算平方数
return x ** 2
list(map(square,[1,2,3,4,5]))#计算列表各元素的平方,加list就可以计算。
[1, 4, 9, 16, 25]
map(lambda x:x**2,[1,2,3,4,5])#使用lambda匿名函数,生产迭代器,加list就可以计算
filter函数(过滤器)
描述
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
语法
filter(function,iterable)
参数
function–判断函数。
iterable–可迭代对象。
只能接收一个参数,且返回值是Ture或Fasle
过滤掉所有奇数
def is_odd(n):
return n % 2 == 1
newlist = filter(is_odd,[1,2,3,4,5,6,7,8,9,10])
print(newlist)
#输出迭代器
<filter object at 0x0000012CFAB45DD8>
def is_odd(n):
return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist)
#加list输出结果
[1, 3, 5, 7, 9]
>> list(filter(None,[0,1,2,3,0,0]))
[1, 2, 3]#输出非零数
zip函数
描述
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
语法
zip([iterable,…])
参数
iterable–一个或多个迭代器。
返回值
返回元组列表
a=[1,2,3]
b=[4,5,6]
zip(a,b)
<zip at 0x12cfab59788>#输出迭代器
a=[1,2,3]
b=[4,5,6]
list(zip(a,b))
[(1, 4), (2, 5), (3, 6)]#加list,输出元组列表
a=[1,2,3]
b=[4,5,6]
zipped=zip(a,b)#打包为元组列表
list(zip(*zipped))# * 还原,将元组解压为列表,返回二维矩阵
[(1, 2, 3), (4, 5, 6)]
reduce函数
描述
reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
语法
reduce(function, iterable[, initializer])
参数
function – 函数,有两个参数
iterable – 可迭代对象
initializer – 可选,初始参数
返回值
函数计算结果
def add(x,y):#两数相加
return x + y
reduce(add,[1,2,3,4,5})#计算列表和:1+2+3+4+5
15
reduce(lambda x,y:x+y,[1,2,3,4,5])#使用lambda匿名函数
15
enumerate函数
描述
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
语法
enumerate(sequence, [start=0])
参数
sequence – 一个序列、迭代器或其他支持迭代对象。
start – 下标起始位置。
返回值
返回 enumerate(枚举) 对象。
for循环使用enumerate
>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
... print i, element
...
0 one
1 two
2 three