python列表推導式
阿新 • • 發佈:2021-08-07
列表推導式
語法解析:
[ 程式執行完賦值給(變數x) for 變數 in range() 條件語句(if 或者 for) 變數 in range() ] #從左到右依次執行
下面我們來看一下常規的迴圈或者判斷語句寫法和列表生成式寫法的幾種對比
1 # 常規寫法 2 list1=[] 3 for x in range(1,10): 4 list1.append(x) 5 print(list1) #輸出為 [1, 2, 3, 4, 5, 6, 7, 8, 9] 6 7 # 列表生成式寫法 8 list1=[ x for x in range(1,10) ]9 print(list1) #輸出為 [1, 2, 3, 4, 5, 6, 7, 8, 9]
1 # 常規寫法 2 list1=[] 3 for x in range(1,10): 4 list1.append(x*x) 5 print(list1) #輸出為 [1, 4, 9, 16, 25, 36, 49, 64, 81] 6 7 #列表生成式寫法 8 list1=[x*x for x in range(1,10)] 9 print(list1) #輸出為 [1, 4, 9, 16, 25, 36, 49, 64, 81]
# 常規寫法 list1=[] list=[[1,2,3],[4,5,6],[7,8,9]] for x in list: for y in x: if y%2==0: list1.append(y) print(list1) #輸出為 [2, 4, 6, 8] # 列表生成式寫法 list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] list1 = [x for y in list for x in y if x % 2 == 0] print(list1) #輸出為 [2, 4, 6, 8]
#增加if else 的列表生成式 list = [x ifx % 2 == 0 else -x for x in range(1, 10)] print(list) #輸出為 [-1, 2, -3, 4, -5, 6, -7, 8, -9]