1. 程式人生 > 實用技巧 >列表(四)-列表推導式

列表(四)-列表推導式

1.列表推導式的基本格式:

變數名= [表示式 for 變數 in 列表] 或者

變數名= [表示式 for 變數 in 列表 if 條件]

2.執行流程:

遍歷出列表中的內容給變數,表示式根據變數值進行邏輯運算

或者遍歷列表中的內容給變數,然後進行判斷,符合的值在給表示式

# 練習1:將lst中每一個元素進行平方後放入到一個新列表中
lst = [1, 2, 3, 4, 5]

l2 = []
for i in lst:
    l2.append(i*i)    
print(l2)

# 推導式
l2 = [i*i for i in lst]



# 練習2:將lst中的奇數放到一個新列表中
lst = [1, 2, 3, 4, 5,6,7,8]
# 推導式   
l3 = [i for i in lst if i%2==1]
    

# 練習3.將一個巢狀列表轉換成一個一維列表
#lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 轉換成:lst2=[1, 2, 3, 4, 5, 6, 7, 8, 9]
lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]


# 傳統方式
l4 = []
for i in lst:
    for j in i:
        l4.append(j)
        
# 推導式      
l4 = [j for i in lst for j in i]



# 練習5:現在有一列表lst = [[1,2,3],[4,5,6],[7,8,9]]要求出[1,4,7]  和 [1,5,9] 元素,思考如何取出
lst = [[1, 2, 3],  
       [4, 5, 6], 
       [7, 8, 9]]

lst_1 = [i[0] for i in lst]

lst_2 = [lst[i][i] for i in range(len(lst))]

3 推導式好處和不足

  • 優點:簡化程式碼,提高程式碼的簡潔性
  • 不足:降低程式碼的可讀性