對於map()它的原型是:map(function,sequence),就是對序列sequence中每個元素都執行函式function操作。
比如之前的a,b,c = map(int,raw_input().split()),意思就是說把輸入的a,b,c轉化為整數。再比如:
a = ['1','2','3','4']
print map(list,a)
print map(int,a)
第乙個map是把列表a中每個元素轉化為列表,第二個macrrkrzehp是把a中每個元素轉化為整數。
而對於zip(),原型是zip(*list),list是乙個列表,zip(*list)返回的是乙個元組,比如:
list = [[1,2,3],[4,5,6],[7,8,9]]
t = zip(*list)
print t
輸出:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
x = [1,2,3,4,5]
y = [6,7,8,9,10]
a = zip(x,y)
print a
輸出:[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]
下面是一些補充:
[python]
>>> list = [[0,1,2],[3,1,4]]
>>> [sum(x) for x in list]
[3, 8]
>>> map(sum,list)
[3, 8]
如果要得到每列之和,需要用zip(*list)先unzip list,得到乙個元組list,其中第i個元組包含了每行的第i個元素:
[python]
>>> list = [[0,1,2],[3,1,4]]
>>> zip(*list)
[(0, 3), (1, 1), (2, 4)]
>>> [sum(x) for x in zip(*list)]
[3, 2, 6]
>>> map(sum,zip(*list))
[3, 2, 6]
下面的例子是關於zip和unzip(其實是zip和*一起用)如何work的:
[python]
>>> x=[1,2,3]
>>> y=[4,5,
>>> zippedwww.cppcns.com = zip(x,y)
>>> zipped
[crrkrzeh(1, 4), (2, 5), (3, 6)]
>>> x2,y2=zip(*zipped)
>>> x2
(1, 2, 3)
>>> y2
(4, 5, 6)
>>> x3,y3=map(list,zip(*zipped))
>程式設計客棧;>> x3
[1, 2, 3]
>>> y3
[4, 5, 6]
本文標題: python中map()與zip()操作方法
本文位址:
python 的map與zip 函式
首先python中的map函式是很簡單的。意為將第二個引數 一般是陣列 中的每乙個項,處理為第乙個引數的型別。比如如下的 將a這個list的每一項都從int型別轉化為str型別。coding utf 8 a 1,2,3 print map str,a 執行結果如下 1 2 3 而如下的陣列,則對a這...
python中map和zip的用法
1,map 是python的乙個內建函式,它接收乙個函式和乙個可迭代物件 如列表 作為引數,用函式處理每個元素,然後返回新的列表。l1 1 2 3 4 5 print map int,l1 輸出 1,2,3,4,5 print map lambda x int x 2,l1 輸出 2,4,5,8,1...
python中並行遍歷 zip和map 轉
1 並行遍歷 zip 和map 內建的zip 函式可以讓我們使用 for迴圈來並行使用多個序列。在基本運算中,zip會取得乙個或多個序列為引數,然後返回元組的列表,將這些序列中的併排的元素配成對。示例一 l1 1,2,3,4 l2 5,6,7,8 要合併這些列表中的元素,可以使用zip 來建立乙個元...