午夜精品久久久久久久99热-午夜精品久久久久-午夜精品成人毛片-午夜黄网站-国产日韩精品欧美一区视频-国产日韩精品欧美一区色

pythonmap函數的用法(python map函數的用法和特點)

pythonmap函數的用法(python map函數的用法和特點)

釗清妍 2025-04-15 科技 25 次瀏覽 0個評論

Python 的 map 函數的主要任務是將指定的函數應用到可迭代對象(如列表、元組、集合等)的每個元素上,進而生成一個新的可迭代對象。這個概念還是比較好懂的,但是有點拗口。我們舉個簡單例子來解釋一下吧。

python map函數的用法和特點

比如有個函數 f ,傳入一個參數,這函數可以是對參數進行很復雜的處理后返回,不過這里為了方便講解,我們就簡單一下,就返回參數的平方好了。

def f(x):

return x ** 2

現在有個列表 x=[1,2,3,4,5] 。要如何把列表里的每個元素都用函數 f 來處理一下呢?

傳統的方法我們可以這樣操作:定義一個空列表 y=[] ,用一個 for 循環,

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

y = []

for i in x:

y.append(f(i))

print(y)

這樣可以通過遍歷 x 列表來實現了。

而通過 map 函數,就更簡單了。直接用 map(f,x) 就行。這樣 map 函數會把 x 列表里所有成員都分別帶入 f 函數處理。最后返回結果是一個可迭代對象。我們可以用 list 把這個可迭代對象轉成列表。

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

result = list(map(f, x))

print(result)

python map函數的用法和特點

通過這個簡單例子,我們就能理解 map 是用來干嘛的了。

那 map 函數都有哪些特點呢?

第一, map 可以對任意可迭代對象進行處理,包括列表,元組,集合,字符串等。比如我們這里把 x 變成一個字符串,函數返回值也改成對字符串的處理,這樣也是可以的。

def process_str(s):

return s.upper()

x = "hello"

result = list(map(process_str, x))

print(result)

第二, map 可以處理多個可迭代對象,這時函數參數數量也要是多個的。 比如我們改一下 f 函數,傳入兩個參數,返回這兩個參數的相加。再定義一個字符串 y ,把 x 和 y 都放到 map 里用函數 f 處理。輸出看下結果。 map 函數會按順序逐個提取兩個可迭代對象里的元素,作為參數傳給 f 。

def add(x, y):

return x + y

x = [1, 2, 3]

y = [4, 5, 6]

result = list(map(add, x, y))

print(result)

如果兩個可迭代對象元素長度不同時, map 函數的會以最短的長度為準,忽略掉過長的那些元素。比如我們把 y 字符串剪短一些,運行可以看到結果列表也是較短的。

def add(x, y):

return x + y

x = [1, 2, 3, 4]

y = [4, 5, 6]

result = list(map(add, x, y))

print(result)

第三, map 返回結果是個迭代器,只能迭代一次。比如我們把 map 提出來賦值給 z ,然后打印兩次 list(z) ,可以看到第二次打印時是空的。 如果需要多次使用,則可以先轉成列表再賦值。然后打印 z 。這樣兩次打印都有結果。 感興趣的小伙伴可以仔細對比一下這兩種方式有什么不同。另外,由于是返回迭代器,而迭代器只有在需要時才會計算和返回值,所以在處理大規模數據時,用 map 可以避免一次性加載大量數據,可以節省內存資源。

x = [1, 2, 3]

z = map(f, x)

print(list(z))

print(list(z))

z = list(map(f, x))

print(z)

print(z)

python map函數的用法和特點

map 都有哪些常用的應用場景呢?比如:

場景一,在處理數據前,對數據進行標準化處理。比如對一串浮點數的數據,我們處理時如果是要用整數的,可以用 map(int,x) ,把所有數先轉成整型。 或者是格式轉換,把字符串格式轉成數值類型。

float_list = [1.1, 2.2, 3.3]

int_list = list(map(int, float_list))

print(int_list)

str_list = ["1", "2", "3"]

int_list_from_str = list(map(int, str_list))

print(int_list_from_str)

python map函數的用法和特點

場景二,代替 for 循環,通過自定義的函數,對列表里所有數據進行函數處理。

def square(x):

return x ** 2

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

squared_nums = list(map(square, nums))

print(squared_nums)

場景三,結合 lambda 表達式,快速對列表元素進行簡單處理。關于 lambda 表達式,我們留到后面的視頻里再介紹。

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

result = list(map(lambda x: x * 2, nums))

print(result)

場景四,對于多個有對應關系的列表,用自定義函數來快速整合。比如有一個產品單價列表,一個產品銷售量列表,可以通過 map ,快速獲得產品銷售額列表。

price = [10, 20, 30]

quantity = [2, 3, 4]

sales = list(map(lambda x, y: x * y, price, quantity))

print(sales)

場景五:在處理海量日志數據時,假設日志文件中每行記錄了一個時間戳,需要將其轉換為特定的日期格式。由于日志數據量巨大,使用 map 函數返回的迭代器可以避免一次性加載所有數據,從而節省內存。

# 假設這里是簡單的時間戳字符串列表,實際應用中從日志文件讀取

timestamps = ["20230101", "20230102", "20230103"]

# 簡單模擬轉換函數,實際應用中會更復雜

def convert_timestamp(ts):

return ts[:4] + "-" + ts[4:6] + "-" + ts[6:]

result = list(map(convert_timestamp, timestamps))

print(result)

關于 map 函數,我們就先講到這里了,相信你對 Python 的 map 函數有了更多的理解。最后留個作業:仔細對比一下 map 函數和推導式,有哪些功能重復或相似的地方,又有哪些不同呢?

python map函數的用法和特點

轉載請注明來自夕逆IT,本文標題:《pythonmap函數的用法(python map函數的用法和特點)》

每一天,每一秒,你所做的決定都會改變你的人生!

發表評論

快捷回復:

評論列表 (暫無評論,25人圍觀)參與討論

還沒有評論,來說兩句吧...

主站蜘蛛池模板: 日韩欧美精品在线观看 | 色香视频在线观看 | 亚洲网站一区 | 夜夜爽免费视频 | 国产久 | 婷婷丁香久久 | 欧美日韩国产免费一区二区三区 | 日韩黄色在线观看 | 国产成人一区二区三区视频免费 | 亚洲第一在线视频 | 亚洲福利视频网站 | 影视精品网站入口 | 久久久久久极精品久久久 | 国产 高清 在线 | 一色屋色费精品视频在线看 | 五月婷婷六月丁香 | 最新日本中文字幕 | 人人爽人人草 | 国产精品无码永久免费888 | 国产高清色视频免费看的网址 | 在线观看精品视频网站www | 国产精品久久久一区二区三区 | 丁香花在线免费高清观看 | 亚洲毛片免费在线观看 | 亚洲最大视频网站 | 国产黄色毛片视频 | 亚洲精品美女在线观看 | 一本一本久久a久久精品综合 | 亚洲成a人一区二区三区 | 精品一区二区视频在线观看 | 中文字幕永久免费视频 | 狠狠色丁香婷婷综合激情 | 亚洲免费福利视频 | 五月天丁香激情 | 久久97久久97精品免视看 | 西西午夜视频 | 五月激情啪啪 | 婷婷丁香视频 | 国产在线观看自拍 | 午夜久久福利 | 最近免费中文完整在线观看视频 |