Categories: Python

Python 列表映射 map 函數教學與範例

介紹如何使用 Python 的 map 函數搭配指定的函數逐一處理列表的每個元素。

套用自訂函數處理列表元素

Python 的 map 函數可以將指定的自訂函數逐一套用至列表中的每個元素,並傳回所有計算結果:

# 計算數值平方的函數
def square(x):
    return x ** 2

# 使用 map 函數將 square 函數套用至列表的每個元素
result = map(square, [1, 2, 3, 4, 5])
print(result)
<map object at 0x7f002d9a5748>

在 Python 3 中的 map 函數會傳回一個 map 物件,我們可以使用 for 迴圈來存取其中的值:

# 顯示結果
for i in result:
    print(i, end = " ")
1 4 9 16 25

或是將 map 物件轉換為列表:

# 將 map 物件轉為列表
result2 = list(map(square, [1, 2, 3, 4, 5]))
print(result2)
[1, 4, 9, 16, 25]

套用 Python 內建函數

map 函數亦可搭配 Python 內建的函數:

# map 搭配 Python 內建函數
val = [2.673, 3.626, 4.225, 5.967, 9.697]
rounded = list(map(round, val))
print(rounded)
[3, 4, 4, 6, 10]

字串處理

map 函數除了用來處理列表之外,亦可用來處理字串,將字串中的每個字元逐一套用指定的函數:

# 將字串轉為大寫
def toUpper(s):
    return s.upper()

# 原始字串
mystr = "hello, world!"

# 套用 toUpper 函數轉換字串
upStr = map(toUpper, mystr)
for i in upStr:
    print(i, end = "")
HELLO, WORLD!

Lambda 函數

map 函數也可以搭配 Lambda 函數來使用,對於簡單的處理函數來說會方便很多:

# 使用 map 函數搭配 Lambda 函數
result = list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))
print(result)
[1, 4, 9, 16, 25]

套用至兩個列表

map 函數也可以將函數套用至兩個列表進行運算:

# 相加的函數
def myadd(x, y):
    return x + y

# 使用 map 函數將 myadd 函數套用至兩個列表
result = list(map(myadd, [1, 2, 3, 4], [2, 4, 6, 8]))
print(result)
[3, 6, 9, 12]

參考資料

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago