python學習筆記 zip 和map

2021-08-08 20:52:54 字數 1893 閱讀 1208

zip函式

zip([seq1,seq2,...])

zip()是python的乙個內建函式,它接受一系列可迭代的物件作為引數,將物件中下標對應的元素打包成乙個個tuple(元組),然後返回由這些tuples組成的list(3.x版本返回乙個生成器)。若傳入引數的長度不等,則返回list的長度和引數中長度最短的物件相同。利用*號操作符,可以實現unzip(解壓),示例:

lista=[1,2,3]

listb=[2,5,7]

listc=[4,5,6,7,8]

zipab=zip(lista,listb)

print(zipab) # print(list(zipab)) # [(1, 2), (2, 5), (3, 7)]

zipac=zip(lista,listc)

print(list(zipac)) # [(1, 4), (2, 5), (3, 6)]

zipab=zip(lista,listb) # [(1, 2), (2, 5), (3, 7)]

unzipab=zip(*zipab)

print(unzipab) # print(list(unzipab)) # [(1, 2, 3), (2, 5, 7)]

map()

map(func,seq1[,seq2,...])

內建函式map()會將引數中除func之外的迭代器做類似於zip()的操作,即將每乙個seq中相同下標的元素組合起來,並將該組合傳遞給func,其中元素組合的組數以seq中長度最短的序列為基準,這一步具體的操作參見上面的zip(),map()最終返回乙個生成器。map()的常用操作如下:

當引數中除func外只有乙個seq時,func會作用於該seq的每乙個元素,並返回乙個生成器:

lista=['hilary','mike','vergil','tom','jerry']

listb=['aaaaa','bbbb','cccc','ddddd','fffff']

caplist=map(str.capitalize,lista) # 字串首字母大寫

print(caplist) # print(list(caplist)) # ['hilary', 'mike', 'vergil', 'tom', 'jerry']

print(list(map(str.upper,listb))) # ['aaaaa', 'bbbb', 'cccc', 'ddddd', 'fffff']

當引數中除func外包含多個seq時,func接受若干seq的zip()組合,並返回乙個生成器,此時需要注意func的引數個數與傳入的seq每乙個組合的元素個數的對應問題:

lista=[1,2,3]

listb=[4,5,6]

listc=[7,8,9,10]

def testfunc(x,y,z):

return x*100+y*10+z

def testfunc2(para):

return para**2

testres=map(testfunc,lista,listb,listc)

testres2=map(testfunc2,listc)

print(testres) # print(list(testres)) # [147, 258, 369]

print(testres2) # print(list(testres2)) # [49, 64, 81, 100]

testres3=map(testfunc2,listc,listb)

print(list(testres3)) # typeerror: testfunc2() takes 1 positional argument but 2 were given

Linux學習筆記 tar和zip命令》

linuxtar 命令詳解 tar cxtzjvfppn 檔案與目錄 引數 c 建立乙個壓縮檔案的引數指令 create 的意思 x 解開乙個壓縮檔案的引數指令!t 檢視 tarfile 裡面的檔案!特別注意,在引數的下達中,c x t 僅能存在乙個!不可同時存在!因為不可能同時壓縮與解壓縮。z 是...

python3學習筆記 zip 函式用法

與python2不同的是,zip傳入可迭代物件,將物件中對應的元素打包成乙個個tuple,返回zip物件。a 1,2,3 b 4,5,6 c a b c d a b zip a,b print a b zip物件是迭代器iterator,可以驗證一下 from collections import ...

Python學習系列之zip函式

目錄 一 zip函式 內建函式 1.1 定義 基本語法 引數說明 返回值 示例 1.2 處理列表 1.3 處理元組 1.4 處理字典 1.5 處理乙個引數和空列表 python 2 zip 函式用於將可迭代的物件 字典,列表,元組,集合,字串等 作為引數,將物件中對應的元素打包成乙個個元組,然後返回...