my_list = [x for x in range(1, 101)]
#执行结果:my_list = [0, 1, 2, 3, 4 ……]
添加条件处理
my_list = [x * x for x in range(1, 101) if x % 2 == 0] #执行结果: my_list = [4, 16, 36 ……]
多层循环嵌套
my_list = [x + y for x in 'abc' for y in 'xyz'] #执行结果:['ax', 'ay', 'az', 'bx', 'by', 'bz', 'cx', 'cy', 'cz']
动态列表(节省内存)
# 常规构建器的做法 lix = [2*x + 1 for x in range(1, 101)] # 执行结果:[1,3,5,7,9,11,13,15,17.....] # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # 常规构建器可以直接构建生成 # 但是存在问题,如果一次构建的数据量太大,会严重占用内存 # 我们在使用该列表的时候,有可能只是使用前10项 # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # 使用列表动态构建器 lix = (2 * x - 1 for x in range(1, 101)) # 执行结果:print (lix) --> <generator object <genexpr> at 0x7f232e462048> next(lix) # 执行结果:1 next(lix) # 执行结果:3 next(lix) # 执行结果:5 next(lix) # 执行结果:7 # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # 列表动态构建器 # 和构建器基本没有区别,创建的时候列表中是没有数据的 # 必须通过next()函数来获取列表中的下一条数据 # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *