如何在Python中向map函式傳遞多個引數?


map 函式是 Python 中的一個內建函式,它將給定的函式應用於可迭代物件(列表、元組等)中的每個元素,並返回一個包含結果的迭代器。我們也可以在 map 函式中使用多個引數。

語法

以下所有示例都使用此語法:

map(function, argument1, argument2,.....)

方法 1:使用 map 函式傳遞多個引數

示例

編寫一個程式,使用 map 函式新增兩個列表的元素。

def add(a,b):
   return a + b

# Create two lists
list1 = [1, 3, 5, 7]
list2 = [2, 4, 6, 8]

# Using map() function with two arguments
sum = map(add, list1, list2)
result = list(sum)
print("1st list = ",list1)
print("2nd list = ",list2)
print("After addition of both list elements Result is :",result)

輸出

1st list =  [1, 3, 5, 7]
2nd list =  [2, 4, 6, 8]
After addition of both list elements Result is : [3, 7, 11, 15]

在這個程式碼中,定義了一個名為 add() 的函式,它返回兩個數字相加的結果。然後,建立兩個列表 list1 和 list2。map() 函式有兩個引數:add 函式(作為第一個引數)和 list1 和 list2(作為第二個引數)。map() 函式將兩個列表的值組合起來形成一個新的列表。這個新列表儲存在 result 中。最後,列印 list1、list2 和將兩個列表的值相加後的結果 result。

方法 2:使用 map 和 lambda 函式傳遞多個引數

示例 1

編寫一個程式,使用 map 和 lambda 函式相減兩個列表的元素。

# Create two lists
list1 = [3, 7, 11, 15]
list2 = [2, 4, 6, 8]

# Using map() & lambda function with two arguments
sub = map(lambda a, b: a - b, list1, list2)
result = list(sub)
print("1st list = ",list1)
print("2nd list = ",list2)
print("After subtraction from 1st list to 2nd list elements result is :",result)

輸出

1st list =  [3, 7, 11, 15]
2nd list =  [2, 4, 6, 8]
After subtraction from 1st list to 2nd list elements result is : [1, 3, 5, 7]

在這個程式碼中,建立了兩個名為 list1 和 list2 的列表。使用 map() 和 lambda 函式,從 list2 的值中減去 list1 的值,形成一個新列表。為此,將兩個引數與 lambda 函式一起傳遞給 map() 函式,其中 list1 和 list2 分別由 lambda 函式的第一個和第二個引數構成。map() 函式用於建立一個新列表。這個新列表儲存在 result 中。最後,列印 list1、list2 和兩個列表的值相減的結果。

示例 2

在這個程式中,我們正在計算兩個列表的乘積。

# Create two lists
list1 = [3, 8, 2, 5]
list2 = [2, 4, 6, 8]

# Using map() & lambda function with two arguments
multi = map(lambda a, b: a * b, list1, list2)
result = list(multi)
print("1st list = ",list1)
print("2nd list = ",list2)
print("After multiplication result is :",result)

輸出

1st list =  [3, 8, 2, 5]
2nd list =  [2, 4, 6, 8]
After multiplication result is : [6, 32, 12, 40]

在這個程式碼中,建立了兩個名為 list1 和 list2 的列表。使用 map() 和 lambda 函式,將 list1 的值乘以 list2 的值,形成一個新列表。為此,將兩個引數與 lambda 函式一起傳遞給 map() 函式,其中 list1 和 list2 分別由 lambda 函式的第一個和第二個引數構成。map() 函式用於建立一個新列表。這個新列表儲存在 result 中。最後,列印 list1、list2 和兩個列表的值相乘的結果 result。

示例 3

在這個程式中,我們將三個列表組合成元組。

name = ["Ajay","Rohit","Vikas"]
id = ["DE12","DE13","DE14"]
marks = ["83%","92%","99%"]

res = map(lambda a, b, c: (a, b, c), name, id, marks)
result=list(res)
print(result)

輸出

[('Ajay', 'DE12', '83%'), ('Rohit', 'DE13', '92%'), ('Vikas', 'DE14', '99%')]

在這個程式碼中,建立了三個名為 name、id 和 marks 的列表。使用 map() 和 lambda 函式,透過將 name、id 和 marks 的值連線成三元組來建立新的列表。為此,將三個引數與 lambda 函式一起傳遞給 map() 函式,其中 name、id 和 marks 分別由 lambda 函式的第一、第二和第三個引數構成。map() 函式用於建立一個新列表。這個新列表儲存在 result 中。最後,列印新的列表 result,其中包含 name、id 和 marks 值的三元組。

結論

總之,Python 的 map() 函式使得操作可迭代物件,特別是列表成為可能。這在執行對資料進行復雜操作的同時,建立易於理解和簡單的程式碼。

更新於:2023年9月29日

2K+ 瀏覽量

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告