天天看點

python - 推導式

推導式 comprehensions(又稱解析式):是 Python 中很強大的、很受歡迎的特性,具有語言簡潔,速度快等優點。推導式包括:

  1. 清單推導式
  2. 字典推導式
  3. 集合推導式

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}    #有長度相同的會隻留一個,這在實際上也非常有用
           

繼續閱讀