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

 

 
 
 
 
 
posted @ 2024-09-13 13:35  wangSir1  阅读(4)  评论(0编辑  收藏  举报