Python列表生成式

列表生成式
	
	列表生成式即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']
相關文章
相關標籤/搜索