使用Python的map()函數將函數映射到序列的每個元素

什麼是 Python 中的 map() 函數?

Python 中的 map() 函數是一個非常有用的工具,它可以將一個函數映射到一個序列的每個元素上。它可以讓你更快速、更容易地對序列中的每個元素執行相同的操作,而不需要使用迴圈。

舉個例子來說,假設你有一個數字序列,並且想要對每個數字求平方:

numbers = [1, 2, 3, 4, 5]

如果你使用迴圈,你可以這樣做:

squares = []
for num in numbers:
    squares.append(num ** 2)

print(squares)
# [1, 4, 9, 16, 25]

但是,你可以使用 map() 函數來簡化這個過程:

squares = list(map(lambda num: num ** 2, numbers))

print(squares)
# [1, 4, 9, 16, 25]

map() 函數會將傳入的函數(在這個例子中是 lambda 函數)映射到序列中的每個元素上,並返回一個由結果組成的新序列。

另外,你也可以將 map() 函數與其他函數結合使用,例如 filter() 函數:

even_squares = list(map(lambda num: num ** 2, filter(lambda num: num % 2 == 0, numbers)))

print(even_squares)
# [4, 16]

這個範例中,filter() 函數會將傳入的函數(在這個例子中是 lambda 函數)應用到序列中的每個元素上,並返回一個只包含符合條件的元素的新序列。然後,map() 函數會將傳入的函數(在這個例子中是 lambda 函數)應用到新序列中的每個元素上,並返回一個由結果組成的新序列。

總結來說,Python 中的 map() 函數是一個非常有用的工具,它可以讓你更快速、更容易地對序列中的每個元素執行相同的操作,而不需要使用迴圈。它也可以與其他函數結合使用,來創建更複雜的函數。

發佈留言