用法2:二維矩陣變換(矩陣的行列互換)
>>> l1=[[1,2,3],[4,5,6],[7,8,9]] >>> print([[j[i] for j in l1] for i in range(len(l1[0])) ]) [[1, 4, 7], [2, 5, 8], [3, 6, 9]] >>> zip(*l1) <zip object at 0x7f5a22651f88> >>> for i in zip(*l1): ... print(i) ... (1, 4, 7) (2, 5, 8) (3, 6, 9)
map函數:
map(function,iterable,...)
map函數接收的第一個參數爲一個函數,能夠爲系統函數例如float,或者def定義的函數,或者lambda定義的函數都可。
舉一個例子,下面這個例子在Python2.7下是能夠正常顯示的:
ls = [1,2,3] rs = map(str,ls) # 打印結果 ['1','2','3'] lt = [1,2,3,4,5,6] def add(num): return num + 1 rs = map(add, lt) print rs # [2,3,4,5,6,7]
可是在Python3下咱們輸入:
>>> ls = [1,2,3] >>> rs = map(str,ls) >>> print(rs) <map object at 0x10d161898>
而不是咱們想要的結果,這也是Python3下發生的一些新的變化,若是咱們想獲得須要的結果須要這樣寫:
ls=[1,2,3] rs=map(str,ls) print(list(rs))
這樣顯示的結果即爲咱們想要看到的。