推導式分為列表推導式(list),字典推導式(dict),集合推導式(set)三種
1.列表推導式也叫列表解析式。
功能:是提供一種方便的列表創建方法,所以,列表解析式返回的是一個列表
格式:用中括號括起來,中間用for語句,后面跟if語句用作判讀,滿足條件的傳到for語句前面用作構建先的列表
[x**2 for item in item_list if item>2]
例子:
1 >>> li=[i*2 for i in range(10) if i % 2 == 0] 2 >>> print li 3 [0, 4, 8, 12, 16] 4 >>>
很明顯,列表解析式最擅長的方式就是對整個列表分別做相同的操作,並且返回得到一個新的列表,並不會直接返回,需要賦值給變量
2.第二種是字典解析式,這個跟列表解析式的用法是差不多的,只不中括號該改成大括號,畢竟字典本身用的就是大括號。
例子:
1 #快速兌換字典鍵—值 2 >>> mca={"a":1, "b":2, "c":3, "d":4} 3 >>> dicts={v:k for k,v in mca.items()} 4 >>> print dicts 5 {1: 'a', 2: 'b', 3: 'c', 4: 'd'} 6 >>>
3.還有一種是集合推導式。
功能:集合推導式跟列表推導式差不多,都是對一個列表的元素全部執行相同的操作,
但集合是一種無重復無序的序列
區別:跟列表推到式的區別在於:1.不使用中括號,使用大括號;2.結果中無重復;3.結果是一個set()集合,集合里面是一個序列
1 >>> squared={i*2 for i in [1,1,2]} 2 >>> print squared 3 set([2, 4]) 4 >>>