python 列表構建器,動態列表構建器


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

 

 

 

 

 

參考文章https://blog.csdn.net/xc_zhou/article/details/80589808


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM