来自runoob的基础看了一大半,剩下的用的再查,做了一些小测验
https://www.runoob.com/quiz/python-quiz.html
剩下的内容,可以接着贪心的NLP内容学习了。
lambda_expr ::= "lambda" [parameter_list
] ":"expression
lambda_expr_nocond ::= "lambda" [parameter_list
] ":"expression_nocond
lambda 表达式(有时称为 lambda 构型)被用于创建匿名函数。 表达式lambda parameters: expression
会产生一个函数对象 。 该未命名对象的行为类似于用以下方式定义的函数: def(parameters): return expression
下面,看个例子:两个数求和
注意:逻辑复杂的还是走def那种更好,因为lambda都写一行,太复杂了不容易看。
conditional_expression ::= or_test
["if" or_test
"else" expression
]
条件表达式(有时称为“三元运算符”)在所有 Python 运算中具有最低的优先级。
表达式 x if C else y
首先是对条件 C 而非 x 求值。 如果 C 为真,x 将被求值并返回其值;否则将对 y 求值并返回其值。
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
map() 函数语法:
map(function, iterable, ...)
例子:
多个参数的例子:
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。‘
以下是 filter() 方法的语法:
filter(function, iterable)
reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
Python3.x reduce() 已经被移到 functools 模块里,如果我们要使用,需要引入 functools 模块来调用 reduce() 函数:
from functools import reduce
reduce() 函数语法:
reduce(function, iterable[, initializer])
返回函数计算结果。
可以这样去理解,1+2=3,3+3=6,6+4=10,10+5=15。就是两两相加
这里的10是初始值,10+上面的15=25
列表推导式是Python构建列表(list)的一种快捷方式。
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循环也可以。上面第例子第二个就是。
复杂点的列表推导式:
集合推导式就是将列表推导式的[]换成{},字典推导式就是推导出两个值并构建成键值对的样子
来个我爱听的有人试试:
set_1 = {value for value in '有人浪迹江湖,有人寒窗苦读,有人阿谀奉承,有人早已麻木'}
print(set_1)
输出:
{'人', '苦', '寒', '木', '迹', '窗', '读', '麻', '湖', '江', '浪', '有', '谀', '早', '奉', '承', ',', '已', '阿'}
集合是无序且不重复的,所以会自动去掉重复的元素。
跟上面一样接if条件语句,嵌套循环等。这里不展开了。
上面就是Python3大推导式的基本用法。