在群暉NAS中安裝cpolar
阿新 • • 發佈:2022-05-19
Python裡的推導式
刷題的時候,有些題目需要生成一個帶條件的列表,當然可以先建立一個空列表,然後一行一行去寫條件然後判斷,最後append到空列表裡,
其實還有一種看似高大上的簡潔寫法,就是列表推導式和列表表示式寫法.
- 格式
[表示式 for 變數 in 列表]
[表示式 for 變數 in 列表 if 條件]
列表推導式
- 請寫一段程式碼生成 1到100之間的正整數的一個列表
#普通寫法: num=[] for i in range(1,101): num.append(i) print(num) #推導式寫法 num=[i for i in range(1,101)] print(num)
帶條件的推導式
- 請寫一段程式碼生成1到100之間的偶數的一個列表
#普通寫法:
num=[]
for i in range(1,101):
if i % 2 == 0:
num.append(i)
print(num)
#推導式寫法
num=[i for i in range(1,101) if i % 2 == 0]
帶條件的表示式
- 請寫一段程式碼生成一個列表包含,在1到100之間的數,如果是3的倍數,就求平方,如果不是3的倍數,就數字本身
# 普通寫法 num=[] for i in range(1,101): if i % 3 == 0: num.append(i**2) else: num.append(i) print(num) # 表示式寫法 num=[i**2 if i % 3 == 0 else i for i in range(1,101)]
其實不同的寫法最終的效果都是一樣的,也不見得寫成一行就有多好,程式碼執行時間其實都差不多,無非就是看起來一個條理清楚易於閱讀,一個看起來比較簡潔適合裝x