1-4-11 数据类型-推导式
4.推导式
推导式是Python中提供了一个非常方便的功能,可以让我们通过一行代码实现创建list、dict、tuple、set 的同时初始化一些值。
请创建一个列表,并在列表中初始化:0、1、2、3、4、5、6、7、8、9...299 整数元素。
data = []
for i in range(300):
data.append(i)
-
列表
num_list = [ i for i in range(10)] num_list = [ [i,i] for i in range(10)] num_list = [ [i,i] for i in range(10) if i > 6 ]
-
集合
num_set = { i for i in range(10)} num_set = { (i,i,i) for i in range(10)} num_set = { (i,i,i) for i in range(10) if i>3}
-
字典
num_dict = { i:i for i in range(10)} num_dict = { i:(i,11) for i in range(10)} num_dict = { i:(i,11) for i in range(10) if i>7}
-
元组,不同于其他类型。
# 不会立即执行内部循环去生成数据,而是得到一个生成器。 data = (i for i in range(10)) print(data) for item in data: print(item)
小高级
-
推导式支持嵌套
data = [ i for i in range(10)] data = [] for i in range(10): data.append(i)
data = [ [i,j] for j in range(5) for i in range(10) ] data = [] for j in range(5): for i in range(10): data.append([i,j])
# 一副扑克牌 poker_list = [ [color, num] for num in range(1, 14) for color in ["红桃", "黑桃", "方片", "梅花"]] print(poker_list) poker_list = [ (color,num) for num in range(1,14) for color in ["红桃", "黑桃", "方片", "梅花"] ]
-
烧脑面试题
def num(): return [lambda x: i * x for i in range(4)] # 1. num()并获取返回值 [函数,函数,函数,函数] i=3 # 2. for循环返回值 # 3. 返回值的每个元素(2) result = [m(2) for m in num()] # [6,6,6,6] print(result)
def num(): return (lambda x: i * x for i in range(4)) # 1. num()并获取返回值 生成器对象 # 2. for循环返回值 # 3. 返回值的每个元素(2) result = [m(2) for m in num()] # [0,2,4,6 ] print(result)