1.1 Python基础
1.1.1 推导式
列表
given_list = [0, 1, 2, 3, 4]
given_list
输出:
[0, 1, 2, 3, 4]
定义函数
def my_func(x): return x ** 2
new_list = [] for i in range(5): new_list.append(my_func(i)) new_list
输出
[0, 1, 4, 9, 16]
以上例子可以简化为:
list(my_func(i) for i in given_list) #列表推导式
{my_func(i) for i in given_list} # 集合推导式
{i: my_func(i) for i in given_list} # 字典推导式
更简化的表达式:
[i**2 for i in given_list]
多次传参没必要:
不提倡做法 sum([my_func(i) for i in given_list])
正确做法: sum(my_func(i) for i in given_list)
推导式的嵌套:
第一类推导式,靠前的为外层循环,靠后的为内层循环
IN: [(color, item) for color in ["red", "blue"] for item in ["pen", "book"]] OUTPUT: [('red', 'pen'), ('red', 'book'), ('blue', 'pen'), ('blue', 'book')]
第二类推导式,外层推导式内的迭代为外层循环,内层推导式内的迭代为内层循环
IN: [[(color, item) for color in ["red","blue"]] for item in ["pen", "book"]] Out: [[('red', 'pen'), ('blue', 'pen')], [('red', 'book'), ('blue', 'book')]]
1.1.2 匿名函数
匿名函数使用 lambda 关键字创建。lambda 紧接形参名,后接冒号与映射关系。
IN: single_para_func = lambda x: 2 * x single_para_func(3) OUTPUT: 6 IN: multi_para_func = lambda a, b: a + b multi_para_func(1, 2) OUTPUT: 3