python的map和zip操作

2021-12-29 19:41:20 字數 1241 閱讀 9215

如果要將乙個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.

[python]  

map(int, list)  

假設有乙個2維陣列(用list實現):

[python]  

list = [[0,1,2],[3,1,4]]  

如果要得到每行之和,可以用以下兩種方式:

[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,6]  

>>> zipped = zip(x,y)  

>>> zipped  

[(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學習筆記 zip 和map

zip函式 zip seq1,seq2,zip 是python的乙個內建函式,它接受一系列可迭代的物件作為引數,將物件中下標對應的元素打包成乙個個tuple 元組 然後返回由這些tuples組成的list 3.x版本返回乙個生成器 若傳入引數的長度不等,則返回list的長度和引數中長度最短的物件相同...

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 iterable,引數說明 iterable,乙個或多個迭代器 zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 號操作符,可以將元組解壓為列表。zip 函...