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()函數來獲取列表中的下一條數據 # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *