map()函數(shù)將給定函數(shù)應(yīng)用于可迭代項(xiàng)的每個(gè)項(xiàng)(列表,元組等),并返回結(jié)果列表。
map()的語法為:
map(function, iterable, ...)
function-map()將可迭代(iterable)項(xiàng)的每一項(xiàng)傳遞給此函數(shù)。
iterable 迭代項(xiàng)
您也可以將多個(gè)迭代(iterable)傳遞給map()函數(shù)。
map()函數(shù)將給定函數(shù)應(yīng)用于可迭代的每個(gè)項(xiàng),并返回結(jié)果列表。
然后,可以將map()(map對(duì)象)的返回值傳遞給list()(創(chuàng)建列表),set()(創(chuàng)建集合)等函數(shù)。
def calculateSquare(n): return n*n numbers = (1, 2, 3, 4) result = map(calculateSquare, numbers) print(result) # 將 map對(duì)象 轉(zhuǎn)換成set集合 numbersSquare = set(result) print(numbersSquare)
運(yùn)行該程序時(shí),輸出為:
<map object at 0x7f722da129e8> {16, 1, 4, 9}
在上面的示例中,將元組的每個(gè)項(xiàng)目都進(jìn)行平方。
由于map()希望傳遞一個(gè)函數(shù),因此在使用map()函數(shù)時(shí)通常使用lambda函數(shù)。
Lambda函數(shù)是沒有名稱的匿名函數(shù)。了解有關(guān)Python lambda函數(shù)更多信息。
numbers = (1, 2, 3, 4) result = map(lambda x: x*x, numbers) print(result) # 將 map對(duì)象 轉(zhuǎn)換成set集合 numbersSquare = set(result) print(numbersSquare)
運(yùn)行該程序時(shí),輸出為:
<map 0x7fafc21ccb00> {16, 1, 4, 9}
此示例和示例1在功能上是等效的。
在此示例中,添加了兩個(gè)列表的對(duì)應(yīng)項(xiàng)。
num1 = [4, 5, 6] num2 = [5, 6, 7] result = map(lambda n1, n2: n1+n2, num1, num2) print(list(result))
運(yùn)行該程序時(shí),輸出為:
[9, 11, 13]