在 Python 中,`map()` 函數(shù)用于對(duì)可迭代對(duì)象中的每個(gè)元素應(yīng)用相同的函數(shù),返回一個(gè)包含結(jié)果的迭代器。它的基本語法如下:
map(function, iterable)
- `function`:要應(yīng)用于每個(gè)元素的函數(shù)。
- `iterable`:一個(gè)或多個(gè)可迭代對(duì)象,如列表、元組等。
`map()` 函數(shù)將函數(shù) `function` 應(yīng)用于 `iterable` 中的每個(gè)元素,并返回一個(gè)迭代器,該迭代器包含了應(yīng)用函數(shù)后的結(jié)果。迭代器可以通過將其轉(zhuǎn)換為列表或其他類型的可迭代對(duì)象來獲取結(jié)果。
以下是幾個(gè)使用 `map()` 函數(shù)的示例:
1. 對(duì)列表中的每個(gè)元素進(jìn)行平方操作:
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x ** 2, numbers)
print(list(squared_numbers)) # 輸出: [1, 4, 9, 16, 25]
在這個(gè)例子中,我們定義了一個(gè) lambda 函數(shù),它對(duì)每個(gè)元素進(jìn)行平方操作。然后,我們將該 lambda 函數(shù)應(yīng)用于列表 `numbers` 的每個(gè)元素,并將結(jié)果存儲(chǔ)在 `squared_numbers` 迭代器中。最后,我們將迭代器轉(zhuǎn)換為列表并打印輸出。
2. 將字符串列表中的每個(gè)元素轉(zhuǎn)換為大寫:
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x ** 2, numbers)
print(list(squared_numbers)) # 輸出: [1, 4, 9, 16, 25]
在這個(gè)例子中,我們使用內(nèi)置函數(shù) `str.upper` 將每個(gè)字符串元素轉(zhuǎn)換為大寫形式。然后,我們將該函數(shù)應(yīng)用于字符串列表 `names` 的每個(gè)元素,并將結(jié)果存儲(chǔ)在 `upper_names` 迭代器中。最后,我們將迭代器轉(zhuǎn)換為列表并打印輸出。
3. 對(duì)兩個(gè)列表中對(duì)應(yīng)位置的元素進(jìn)行相加:
numbers1 = [1, 2, 3]
numbers2 = [10, 20, 30]
result = map(lambda x, y: x + y, numbers1, numbers2)
print(list(result)) # 輸出: [11, 22, 33]
在這個(gè)例子中,我們定義了一個(gè) lambda 函數(shù),它將兩個(gè)參數(shù)相加。然后,我們將該函數(shù)應(yīng)用于兩個(gè)列表 `numbers1` 和 `numbers2` 中對(duì)應(yīng)位置的元素,并將結(jié)果存儲(chǔ)在 `result` 迭代器中。最后,我們將迭代器轉(zhuǎn)換為列表并打印輸出。
通過使用 `map()` 函數(shù),可以對(duì)可迭代對(duì)象中的元素進(jìn)行批量操作,提供了一種簡(jiǎn)潔而有效的方式來處理數(shù)據(jù)。