列表生成式 列表生成式即List Comprehensions ,是Python內置的很是簡單卻強大的能夠用來建立list的生成式 例子: 要生成list [1,2,3,4,5] 能夠用 list(range(1,6)) 可是若是要生成[1*1,2*2,3*3,4*4,5*5]怎麼辦? 一種方法是循環 L = [] for i in range(1,6): L.append(i*i) print(L) 可是循環太繁瑣,而列表生成式則能夠用一句代替循環生成上面的list 另外一種方法: 準備好我要裝B了: L = [i * i for i in range(1,6)] print(L)#[1, 4, 9, 16, 25] 注意:寫列表生成式時,把要生成的元素i*i放在前面,就能夠把list建立出來。 for 循環後面還能夠加if判斷。 例子 : L = [i * i for i in range(1,6) if i % 2 == 0] print(L) #[4, 16] for 循環後面還能夠使用兩層循環,生成全排列。 例子: L = [a + b for a in 'ASD' for b in 'qwe'] print(L)#['Aq', 'Aw', 'Ae', 'Sq', 'Sw', 'Se', 'Dq', 'Dw', 'De'] 至關於: L = [] for a in 'ASD': for b in 'qwe': s = a + b L.append(s) print(L) 在下也是據說,三層和三層以上用的比較少。 運用列表生成式能夠寫出很簡潔的代碼。 for 循環其實能夠同時使用兩個甚至多個變量, 例子: dic = {1 : 'a', 2 : 'b', 3 : 'c'} for k,v in dic.items(): print(k,'---',v) 結果: 1 --- a 2 --- b 3 --- c 所以,列表生成式爲: dic = {1 : 'a', 2 : 'b', 3 : 'c'} L = [k + '---' + v for k ,v in dic.items()] print(L)#['1---a', '2---b', '3---c']