推導式 comprehensions(又稱解析式):是 Python 中很強大的、很受歡迎的特性,具有語言簡潔,速度快等優點。推導式包括:
- 清單推導式
- 字典推導式
- 集合推導式
1.1 清單推導式
文法:
[表達式 for 變量 in 清單]
代表從清單中取出每個元素,然後在按照表達式運算,然後放在新的清單中
[表達式 for 變量 in 清單 if 條件]
代表從清單中取出滿足條件的元素,然後在按照表達式運算,然後放在新的清單中
例1: 過濾掉長度小于3的字元串清單,并将剩下的轉換成大寫字母
names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
print([name.upper() for name in names if len(name)>3])
1.2 字典推導式
文法 { key: value for 變量 in 資料集 if 條件}
列如:
data ={n : randint(10,100) for n in range(10)}
print(data)
比如:過濾value 大于90
data2 = { k:v for k,v in data.items() if v>=90}
print(data2)
1.3 集合推導式
文法 { 表達式 for value in 資料集 if 條件 }
列如:
用集合推導建字元串長度的集合
strings = ['a','is','with','if','file','exception']
{len(s) for s in strings} #有長度相同的會隻留一個,這在實際上也非常有用