Python基础语法 - 内置函数

重要的内置函数:

1filter(function, sequence)

1

2

3

4

5

6

7

8

9

10

str=['a','b','c','d']

deffun1(s):

ifs !='a':

returns

ret=filter(fun1,str)

print(list(ret))# ret是一个迭代器对象

对sequence中的item依次执行function(item),将执行结果为True的item做成一个filter object的迭代器返回。可以看作是过滤函数。

2map(function, sequence)

1

2

3

4

5

6

7

8

9

10

str=[1,2,'a','b']

deffun2(s):

returns+"alvin"

ret=map(fun2,str)

print(ret)# map object的迭代器

print(list(ret))# ['aalvin', 'balvin', 'calvin', 'dalvin']

对sequence中的item依次执行function(item),将执行结果组成一个map object迭代器返回.<br />map也支持多个sequence,这就要求function也支持相应数量的参数输入:

1

2

3

ef add(x,y):

returnx+y

print(list(map(add,range(10),range(10))))##[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

3 reduce(function, sequence, starting_value)

1

2

3

4

5

6

7

8

fromfunctoolsimportreduce

defadd1(x,y):

returnx+y

print(reduce(add1,range(1,101)))## 4950 (注:1+2+...+99)

print(reduce(add1,range(1,101),20))## 4970 (注:1+2+...+99+20)

对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用.

4 lambda

普通函数与匿名函数的对比:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#普通函数

defadd(a,b):

returna+b

printadd(2,3)

#匿名函数

add=lambdaa,b : a+b

printadd(2,3)

#========输出===========

5

5

匿名函数的命名规则,用lamdba关键字标识,冒号(:)左侧表示函数接收的参数(a,b),冒号(:)右侧表示函数的返回值(a+b)。

因为lamdba在创建时不需要命名,所以,叫匿名函数

相关推荐