Python基础9—常用函数

1、Lambda

  ①Lambda函数体只能有唯一的一条返回值表达式语句,语法为(参数个数可变):

    返回函数名=lambda x,y,z:x+y+z

  ②可做为数组(也可以是字典或者列表)元素,哦那个人实现转表功能,也就是函数列表

    定义语法:数组名=[(lambda表达式1),(lambda表达式2)......]

    调用方法:数组名[索引](lambda表达式的参数列表)

1 he=lambda x,y,z:x+y+z
2 print(he(1,2,6))
3 arr1=[(lambda x:x**2),(lambda x:x**3),(lambda x:x**4)]
4 print(arr1[0](2),arr1[2](2))

  ③作为函数的返回值

 1 def jisuan(x):
 2     if x==1:
 3         return lambda x,y:x+y
 4     if x==2:
 5         return lambda x,y:x-y
 6     if x==3:
 7         return lambda x,y:x*y
 8     if x==4:
 9         return lambda x,y:x/y
10 
11 action=jisuan(1)
12 print(action(10,2))
13 action=jisuan(2)
14 print(action(10,2))
15 action=jisuan(3)
16 print(action(10,2))
17 action=jisuan(4)
18 print(action(10,2))

2、map()

  map函数用于将指定序列中的所有元素作为参数调用指定函数,并将结果构成一个新的序列返回语法如下:

    结果序列=map(映射函数,序列1[,序列2,......])

1 arr1=map(lambda x:x**2,[2,4,6,8,10])
2 for e in enumerate(arr1):
3     print(e)
4 
5 arr2=map(lambda x,y:x+y,[1,3,5,7,9],[2,4,6,8,10])
6 for e in enumerate(arr2):
7     print(e)

3、filter()

  filter函数可以对指定序列执行过滤操作,具体定义如下:

    filter=(函数function,序列sequence)

    函数functionjj接受一个参数,返回bool,序列可以是列表、元祖、字符串

    filter函数一序列参数sequence中的每个元素为参数调用function函数,调用结果为True的元素将作为filter函数的结果返回

1 def is_even(x):
2     return x%2==0
3 arr=filter(is_even,[1,2,3,4,5,6,7,8,9,10])
4 
5 for e in enumerate(arr):
6     print(e)

4、reduce()

  将指定序列中的所有元素作为参数按一定的规则调用指定函数,语法如下:

    计算结果=reduce(映射函数,序列)

    映射函数的参数必须有两个,reduce先调用序列第一和第二个元素,然后再调用第一和第二个元素的结果和第三个元素,以此类推

1 from functools import reduce
2 def myadd(x,y):
3     return x+y
4 sum=reduce(myadd,(2,4,6,8,10))
5 print(sum)

5、zip()

  以一些列列表作为参数,将列表中对应的元素打包成一个个元组,然后返回有这些元祖组成的列表(如果传入的参数长短不一,则返回列表的长度与最短的参数相同)

 1 a=[1,2,3]
 2 b=[4,5,6]
 3 zipped=zip(a,b)
 4 for element in zipped:
 5     print(element)
 6 print('--------------')#虚线前后得到的结果是一样的
 7 b=[4,5,6,7,8,9]
 8 zipped=zip(a,b)
 9 for element in zipped:
10     print(element)
1 a=[1,2,3]
2 b=[4,5,6]
3 zipped=zip(a,b)
4 unzipped=zip(*zipped)
5 for element in unzipped:
6     print(element)

 

posted @ 2018-04-25 01:32  <逸逐>  阅读(829)  评论(0编辑  收藏  举报