python 推導式


推導式 comprehensions(又稱解析式),是 python 的一種獨有特性。推導式是可以從一個數據序列構建另一個新的數據序列。

1.1列表推導式

語法:

  • 變量名 = [表達式 for 變量 in 列表 for 變量 in  xxx]
  • 變量名 = [表達式 for 變量 in 列表 if 條件]

語義:

  • 遍歷出列表中的內容給變量,表達式根據變量值進行邏輯運算。或者遍歷列表中的內容給變量,然后進行判斷,符合的值在給表達式。

練習1:快速創建一個包含元素1-10的列表

list1 = [i for i in range(1, 11)]
print(list1)

  

練習2:快速創建一個包含1-10之間所有偶數的列表

list1 = [i for i in range(1, 11) if i % 2 == 0]
print(list1)

  

練習3:現在有一列表 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]]
lst1 = [lst[i][0] for i in range(len(lst))]
print(lst1)
lst2 = [lst[i][i] for i in range(len(lst))]
print(lst2)

面試題:求

a = [lambda x: x * i for i in range(3)]  # 此處定義了一個裝了 3 個匿名函數函數的列表,尚未調用匿名函數,
                                         # 調用時全局變量 i 變為 2 相當於 a = [lambda x:x*2, lambda x:x*2, lambda x:x*2]
print(type(a[0]), "---", a[0])  # -> x為函數形參,i為全局變量,程序執行到此處i變為2
print(a[0](2))
print(a[1](2))
print(a[2](2))

2字典推導式

  • 字典推導式列表推導式思想的延續,語法差不多,只不過產生的是字典而已。
  • 字典推導式格式:
  •  變量名 = {....}
  • 練習:將字典中的 key 和 value 進行對換。
2.2字典推導式

字典推導式列表推導式思想的延續,語法差不多,只不過產生的是字典而已。
字典推導式格式:
變量名 = {....}
練習:將字典中的 key 和 value 進行對換。

3集合推導式

  • 集合推導式跟列表推導式非常相似,唯一區別在於用 { } 代替 [ ]
  • 練習:
  • 創建一個存儲10個偶數的集合
set1 = {x for x in range(10) if x % 2 == 0}
print(set1)

 

 


免責聲明!

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



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