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,10]
2,zip()是python的乙個內建函式,它接受一系列可迭代的物件作為引數,將物件中對應的元素打包成乙個個tuple(元組),然後返回由這些tuples組成的list(列表)。若傳入引數的長度不等,則返回list的長度和引數中長度最短的物件相同。利用*號操作符,可以將list unzip(解壓)
>>>
a =
[1,2,3]
>>>
b =
[4,5,6]
>>>
c =
[4,5,6,7,8]
>>>
zipped =
zip(a,b) [
(1,
4),
(2,
5),
(3, 6)
] >>>
zip(a,c) [
(1,
4),
(2,
5),
(3, 6)
] zip(
*zipped) [
(1,
2, 3
), (
4, 5, 6)
] 3,
比如我們有乙個由列表描述的二維矩陣
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
通過python列表推導的方法,我們也能輕易完成這個任務
[[row[col]
forrowina]
forcolin
range
(len
(a[0])
)] [
[1,
4, 7
], [
2, 5,
8],
[3,
6, 9]]
另外一種讓人困惑的方法就是利用zip函式:
>>>
a = [[
1, 2,
3],
[4,
5, 6
], [
7, 8, 9]
] >>>
zip(
*a) [(
1, 4,
7),
(2,
5, 8
), (
3, 6, 9)
] >>>
map(
list,zip
(*a))
[[1, 4,
7],
[2,
5, 8
], [
3, 6, 9]
] zip函式接受任意多個序列作為引數,將所有序列按相同的索引組合成乙個元素是各個序列合併成的tuple的新序列,新的序列的長度以引數中最短的序列為準。另外(*)操作符與zip函式配合可以實現與zip相反的功能,即將合併的序列拆成多個tuple。
①tuple的新序列
>>>>x=[1,2,3],y=['a','b','c']
>>>zip(x,y)
[(1,'a'),(2,'b'),(3,'c')]
②新的序列的長度以引數中最短的序列為準.
>>>>x=[1,2],y=['a','b','c']
>>>zip(x,y)
[(1,'a'),(2,'b')]
③(*)操作符與zip函式配合可以實現與zip相反的功能,即將合併的序列拆成多個tuple。
>>>>x=[1,2,3],y=['a','b','c']
>>>>zip(*zip(x,y))
[(1,2,3),('a','b','c')]
python中的zip 函式和map 函式
1.語法 zip iterable,引數說明 iterable,乙個或多個迭代器 zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 號操作符,可以將元組解壓為列表。zip 函...
python的map和zip操作
如果要將乙個string list轉換成int list list裡每個string都轉成int 比如 python 0 1 2 0,1,2 可以使用 python int x for x in list 或者使用map操作 map func,list 對list裡的每個元素apply func.p...
python中並行遍歷 zip和map 轉
1 並行遍歷 zip 和map 內建的zip 函式可以讓我們使用 for迴圈來並行使用多個序列。在基本運算中,zip會取得乙個或多個序列為引數,然後返回元組的列表,將這些序列中的併排的元素配成對。示例一 l1 1,2,3,4 l2 5,6,7,8 要合併這些列表中的元素,可以使用zip 來建立乙個元...