python中map和zip的用法

2021-06-18 13:50:41 字數 2089 閱讀 4370

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列表推導的方法,我們也能輕易完成這個任務

print

[[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 來建立乙個元...