python lambda表达式&map/filter/reduce

习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即:

1
2
3
4
5
6
7
8
# 普通条件语句
if 1 == 1:
    name = 'wupeiqi'
else:
    name = 'alex'
  
# 三元运算
name = 'wupeiqi' if 1 == 1 else 'alex'

对于简单的函数,也存在一种简便的表示方式,即:lambda表达式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# ###################### 普通函数 ######################
# 定义函数(普通方式)
def func(arg):
    return arg + 1
  
# 执行函数
result = func(123)
  
# ###################### lambda ######################
  
# 定义函数(lambda表达式)
my_lambda = lambda arg : arg + 1
  
# 执行函数
result = my_lambda(123)

lambda存在意义就是对简单函数的简洁表示

内置函数 二

一、map

遍历序列,对序列中每个元素进行操作,最终获取新的序列。

python lambda表达式&map/filter/reduce

二、filter

对于序列中的元素进行筛选,最终获取符合条件的序列

python lambda表达式&map/filter/reduce

三、reduce

对于序列内所有元素进行累计操作

python lambda表达式&map/filter/reduce

python lambda表达式&map/filter/reduce

print filter(lambda x : x % 2 == 0, range(10))
print map(lambda x, y : x * y, range(1,4), range(1,4))
print reduce(lambda x, y : x + y, range(101))

输出结果:

[0, 2, 4, 6, 8]
[1, 4, 9]
5050
上一篇:RDO Stack Exception: UnboundLocalError: local variable 'logFile' referenced before assignment


下一篇:DB设计原则(一)字段名定义避免二义性。