# 初始化一个列表 list_1 = [] # 使用循环生成一个列表数据 for val in range(0,20,1): # 加入集合 list_1.append(val) # 打印列表数据 print(list_1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
# 列表推导式生成列表数据 list_2 = [i for i in range(20)] # 打印列表数据 print(list_2) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] ''' 分析: 1、使用一行代码的列表推导式就完成了该列表的生成 2、[i for i in range(20)],第一个i元素代表向列表list_2中添加的元素 3、[i for i in range(20)],第二个i元素代表for循环遍历的i元素 '''
# 在基本列表推导式的基础上加入条件判断 list_3 = [i for i in range(20) if i % 2 == 0] # 打印列表推导式 print(list_3) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] ''' 分析: [i for i in range(20) if i % 2 == 0],第三个if后面的i元素, 相当于是在for循环内部提取其中的i元素作条件校验。 '''
# 既然是双重循环则需要定义两个变量a、b list_4 = [(a,b) for a in range(4) for b in range(5)] # 由于打印结果是列表中包含元组信息,使用pprint可以美观的打印数据 from pprint import pprint # 打印列表推导式 pprint(list_4) # [(0, 0), # (0, 1), # (0, 2), # (0, 3), # (0, 4), # (1, 0), # (1, 1), # (1, 2), # (1, 3), # (1, 4), # (2, 0), # (2, 1), # (2, 2), # (2, 3), # (2, 4), # (3, 0), # (3, 1), # (3, 2), # (3, 3), # (3, 4)] ''' 分析: 其中a、b分别对应第一个和第二个for循环的遍历元素a、b, 同样可以加入a、b元素的条件校验,比如可以写成如下的列表推导式 list_5 = [(a,b) for a in range(4) if a % 2 == 0 for b in range(5) if b % 2 == 0] '''
联系客服