python入门系列:lambda表达式,map函数,列表推导式

一 序

  来自runoob的基础看了一大半,剩下的用的再查,做了一些小测验

https://www.runoob.com/quiz/python-quiz.html

剩下的内容,可以接着贪心的NLP内容学习了。

二 lambda表达式

lambda_expr        ::=  "lambda" [parameter_list] ":" expression

lambda_expr_nocond ::=  "lambda" [parameter_list] ":" expression_nocond
lambda 表达式(有时称为 lambda 构型)被用于创建匿名函数。 表达式 lambda parameters: expression 会产生一个函数对象 。 该未命名对象的行为类似于用以下方式定义的函数:
def (parameters):
    return expression

下面,看个例子:两个数求和

python入门系列:lambda表达式,map函数,列表推导式_第1张图片

注意:逻辑复杂的还是走def那种更好,因为lambda都写一行,太复杂了不容易看。

三 条件表达式

  conditional_expression ::= or_test["if" or_test"else" expression]

条件表达式(有时称为“三元运算符”)在所有 Python 运算中具有最低的优先级。

表达式 x if C else y 首先是对条件 C 而非 x 求值。 如果 C 为真,x 将被求值并返回其值;否则将对 y 求值并返回其值。

python入门系列:lambda表达式,map函数,列表推导式_第2张图片

四 map() 函数

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

map() 函数语法:

map(function, iterable, ...)

例子:

python入门系列:lambda表达式,map函数,列表推导式_第3张图片

多个参数的例子:

python入门系列:lambda表达式,map函数,列表推导式_第4张图片

五 filter() 函数

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。‘

以下是 filter() 方法的语法:

filter(function, iterable)

python入门系列:lambda表达式,map函数,列表推导式_第5张图片

六 reduce() 函数

  reduce() 函数会对参数序列中元素进行累积。

函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

Python3.x reduce() 已经被移到 functools 模块里,如果我们要使用,需要引入 functools 模块来调用 reduce() 函数:

from functools import reduce

reduce() 函数语法:

reduce(function, iterable[, initializer])
  • initializer -- 可选,初始参数

返回函数计算结果。

python入门系列:lambda表达式,map函数,列表推导式_第6张图片

可以这样去理解,1+2=3,3+3=6,6+4=10,10+5=15。就是两两相加

python入门系列:lambda表达式,map函数,列表推导式_第7张图片

这里的10是初始值,10+上面的15=25

七 列表推导式

列表推导式是Python构建列表(list)的一种快捷方式。

python入门系列:lambda表达式,map函数,列表推导式_第8张图片

python的range()函数可用来创建一个整数列表,一般用在 for 循环中.

range()语法:range(start, stop[, step])

start: 计数从start开始,默认是从0开始(闭区间),如:range(5)等价于range(0,5).

stop: 计数到stop结束,但不包括stop(开区间).如:range(0,5)是[0, 1, 2, 3, 4],不包含5.

step:步长,相邻两个值的差值,默认为1.如:range(0,5)相当于range(0, 5, 1).

for循环也可以。上面第例子第二个就是。

复杂点的列表推导式:

python入门系列:lambda表达式,map函数,列表推导式_第9张图片

集合推导式

集合推导式就是将列表推导式的[]换成{},字典推导式就是推导出两个值并构建成键值对的样子

python入门系列:lambda表达式,map函数,列表推导式_第10张图片

来个我爱听的有人试试:

set_1 = {value for value in '有人浪迹江湖,有人寒窗苦读,有人阿谀奉承,有人早已麻木'}
print(set_1)

输出:

{'人', '苦', '寒', '木', '迹', '窗', '读', '麻', '湖', '江', '浪', '有', '谀', '早', '奉', '承', ',', '已', '阿'}

集合是无序且不重复的,所以会自动去掉重复的元素。

字典推导式

python入门系列:lambda表达式,map函数,列表推导式_第11张图片

跟上面一样接if条件语句,嵌套循环等。这里不展开了。

上面就是Python3大推导式的基本用法。

你可能感兴趣的:(python,列表推导式,python,map函数,lambda,filter)