Python中lambda表达式的简单介绍(附示例)


本文摘自php中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于Python中lambda表达式的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

一:匿名函数的定义

lambda parameter_list: expression

二:三元表达式

条件为真时返回的结果 if 条件判断 else 条件为假的时候返回的结果

三:map

map(func(arg1, arg2...), list1_arg1, list2_arg2),对后面输入的list分别执行前面的函数(数学的映射)

四:reduce

reduce(func(arg1, arg2...), list1_arg, init_value),连续计算,连续调用lambda表达式

五:filter

filter(func(arg1, arg2...), list1_arg1)当条件满足的时候数据会被过滤出来!

六:函数式编程和命令式编程

1

2

3

4

5

def

    if --else

    for

    map reduce filter

    lambda

函数式编程的思想。。。。
命令式编程的思想。。。。

函数式编程关心数据的映射,命令式编程关心解决问题的步骤

函数式编程:

(1)指的是函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值。

(2) 只用"表达式",不用"语句"

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

from functools import reduce

# ----------------------------------------------------------------#

#   匿名函数的定义

# ----------------------------------------------------------------#

 

 

def add(x, y):

    """

    add x and y

    :param x: x can be str or num

    :param y: y can be str or num

    :return:  x+y

    """

    return x + y

 

 

# lambda parameter_list: expression

user_sum = lambda arg1, arg2: arg1 + arg2

 

my_sum = user_sum(2, 2)

print(my_sum)

 

# ----------------------------------------------------------------#

#   三元表达式

# ----------------------------------------------------------------#

a, b = 1, 2

r = a if a > b else b

print(r)

 

# ----------------------------------------------------------------#

#   map(func, list),对后面输入的list分别执行前面的函数(数学的映射)

# ----------------------------------------------------------------#

 

myListMap1 = [1, 2, 3, 4]

myNewListMap1 = map(lambda x: x ** 2, myListMap1)  # 返回为map类型的数据结构

print(type(myNewListMap1))

print('myNewListMap1:', list(myNewListMap1))    # 转换为list

 

 

# 两个或者多个参数的map函数的使用

# 当两个参数种元素的个数不相同的时候会截断

myListMap2 = [1, 2, 3, 4]

myNewListMap2 = map(lambda x, y: x + y, myListMap1, myListMap2)

print('myNewListMap2:', list(myNewListMap2))

 

 

# ----------------------------------------------------------------#

#   reduce(func, list)连续计算,连续调用lambda表达式

# ----------------------------------------------------------------#

 

myListReduce = [1, 2, 3, 4]

# 把list中的值一个一个放进lambda中

r = reduce(lambda x, y: x + y, myListReduce)

print(r)

 

# 对第一个函数参数进行初始化

r = reduce(lambda x, y: x + y, myListReduce, 10)

print(r)

 

# filter

myListFilter = [3, 5, 6, 7, 8, 9, 10]

myNewListFilter = filter(lambda x: x % 2 == 1, myListFilter)

print('myNewListFilter:', list(myNewListFilter))

 

list_x = [1, 1, 0, 0]

filter_list = filter(lambda x: True if x == 1 else False, list_x)

print(list(filter_list))

以上就是Python中lambda表达式的简单介绍(附示例)的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

使用Python如何操作pdf

实例详解Python+slack api 如何实现聊天机器人

Python入门教程之列表操作

Python不是内部或外部命令的解决方法

Python中如何获取环境变量

Python函数中参数的详细介绍

Python 实现一行输入多个值

pycharm怎么删除项目

Python语言语句块的标记是什么?

Python通过公共键对字典列表排序(利用itemgetter函数)

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...