1. 程式人生 > 其它 >在群暉NAS中安裝cpolar

在群暉NAS中安裝cpolar

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