久久午夜无码,国产中文资源,Chinese熟女熟妇2乱2,高清五码d一区

pythonmap函數(shù)的用法(python map函數(shù)的用法和特點(diǎn))

pythonmap函數(shù)的用法(python map函數(shù)的用法和特點(diǎn))

釗清妍 2025-04-15 科技 37 次瀏覽 0個(gè)評(píng)論

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

python map函數(shù)的用法和特點(diǎn)

比如有個(gè)函數(shù) f ,傳入一個(gè)參數(shù),這函數(shù)可以是對(duì)參數(shù)進(jìn)行很復(fù)雜的處理后返回,不過這里為了方便講解,我們就簡(jiǎn)單一下,就返回參數(shù)的平方好了。

def f(x):

return x ** 2

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

傳統(tǒng)的方法我們可以這樣操作:定義一個(gè)空列表 y=[] ,用一個(gè) for 循環(huán),

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

y = []

for i in x:

y.append(f(i))

print(y)

這樣可以通過遍歷 x 列表來實(shí)現(xiàn)了。

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

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

result = list(map(f, x))

print(result)

python map函數(shù)的用法和特點(diǎn)

通過這個(gè)簡(jiǎn)單例子,我們就能理解 map 是用來干嘛的了。

那 map 函數(shù)都有哪些特點(diǎn)呢?

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

def process_str(s):

return s.upper()

x = "hello"

result = list(map(process_str, x))

print(result)

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

def add(x, y):

return x + y

x = [1, 2, 3]

y = [4, 5, 6]

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

print(result)

如果兩個(gè)可迭代對(duì)象元素長(zhǎng)度不同時(shí), map 函數(shù)的會(huì)以最短的長(zhǎng)度為準(zhǔn),忽略掉過長(zhǎng)的那些元素。比如我們把 y 字符串剪短一些,運(yùn)行可以看到結(jié)果列表也是較短的。

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

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函數(shù)的用法和特點(diǎn)

map 都有哪些常用的應(yīng)用場(chǎng)景呢?比如:

場(chǎng)景一,在處理數(shù)據(jù)前,對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。比如對(duì)一串浮點(diǎn)數(shù)的數(shù)據(jù),我們處理時(shí)如果是要用整數(shù)的,可以用 map(int,x) ,把所有數(shù)先轉(zhuǎn)成整型。 或者是格式轉(zhuǎn)換,把字符串格式轉(zhuǎn)成數(shù)值類型。

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函數(shù)的用法和特點(diǎn)

場(chǎng)景二,代替 for 循環(huán),通過自定義的函數(shù),對(duì)列表里所有數(shù)據(jù)進(jìn)行函數(shù)處理。

def square(x):

return x ** 2

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

squared_nums = list(map(square, nums))

print(squared_nums)

場(chǎng)景三,結(jié)合 lambda 表達(dá)式,快速對(duì)列表元素進(jìn)行簡(jiǎn)單處理。關(guān)于 lambda 表達(dá)式,我們留到后面的視頻里再介紹。

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

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

print(result)

場(chǎng)景四,對(duì)于多個(gè)有對(duì)應(yīng)關(guān)系的列表,用自定義函數(shù)來快速整合。比如有一個(gè)產(chǎn)品單價(jià)列表,一個(gè)產(chǎn)品銷售量列表,可以通過 map ,快速獲得產(chǎn)品銷售額列表。

price = [10, 20, 30]

quantity = [2, 3, 4]

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

print(sales)

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

# 假設(shè)這里是簡(jiǎn)單的時(shí)間戳字符串列表,實(shí)際應(yīng)用中從日志文件讀取

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

# 簡(jiǎn)單模擬轉(zhuǎn)換函數(shù),實(shí)際應(yīng)用中會(huì)更復(fù)雜

def convert_timestamp(ts):

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

result = list(map(convert_timestamp, timestamps))

print(result)

關(guān)于 map 函數(shù),我們就先講到這里了,相信你對(duì) Python 的 map 函數(shù)有了更多的理解。最后留個(gè)作業(yè):仔細(xì)對(duì)比一下 map 函數(shù)和推導(dǎo)式,有哪些功能重復(fù)或相似的地方,又有哪些不同呢?

python map函數(shù)的用法和特點(diǎn)

轉(zhuǎn)載請(qǐng)注明來自夕逆IT,本文標(biāo)題:《pythonmap函數(shù)的用法(python map函數(shù)的用法和特點(diǎn))》

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

發(fā)表評(píng)論

快捷回復(fù):

評(píng)論列表 (暫無評(píng)論,37人圍觀)參與討論

還沒有評(píng)論,來說兩句吧...

久久精品伦| 欧美精品一区二| 无码免费真人官网视频| 免费二级片在线观看| 国产精品亚洲日韩aⅴ在线| 亚洲国产精品一区二区三区久久| 厨房婬乱公妇1-42| 色综合久久天天综合| 国产精鲁鲁网视频在线观看| 国产日韩久久久久69影院| 亚洲AV一二三| 国产的好爽| 无码精品91在线| 东京热永久免费视频| 天天摸夜夜摸夜夜狠狠摸| 爱爱舔av| 国产在线观看午夜视频| 12一15女人A毛片| www.av爱爱| 成人六月婷婷网| 成人一二三四五区| 国产一区国产二区精品一区| 久91久热只有精品国产| 色多多在现线视看| 国产无遮挡又黄又爽在线观看| 人妻拍拍| 久久精品亚洲蜜臀AV不卡| 日韩新网站| 久热这里精品国产亚洲无码网| 天天躁夜夜躁狠狠躁2021牛牛| 亚洲精品无播放器在线观看| 奶水在线观看精品| 国产无码夜夜一区二区| 久久久久精品人妻jul-036| 亚洲国产精品无线观看| 国产亚洲91精品| 海外国产av| 久久久久久亚洲精品无码夜夜| 亚州爽片网站地址| 中文字幕加勒比| 欧美一区二区视频在线播放|