最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python高階函數(shù)map()?簡介和使用詳解

 更新時間:2023年03月03日 09:26:34   作者:Python歐尼醬  
map()?函數(shù)是Python中的內(nèi)置函數(shù),這個函數(shù)又叫做映射函數(shù),其實里面具有一個迭代器的功能,會依次遍歷可迭代對象進行相關(guān)的操作,這篇文章主要介紹了Python高階函數(shù)map()?簡介和使用詳解,需要的朋友可以參考下

簡介:

格式:

map(function,iterable,……)

參數(shù)說明:

function:是表示函數(shù)功能

iterable:是表示可迭代對象 ,后面可以跟一個或者多個可迭代對象

功能:這個函數(shù)可以實現(xiàn)把可迭代對象中的每個數(shù)據(jù)依次帶入功能函數(shù)(function)中

返回值:注意map() 函數(shù)并不會改變原來的數(shù)據(jù),而是生成一個新的map對象(本質(zhì)是一個迭代器),map對象第一個參數(shù)是作用功能,第二個是被功能函數(shù)作用可迭代對象,當(dāng)我們?nèi)ネㄟ^列表(list)進行強制轉(zhuǎn)換會觸發(fā)函數(shù)的作用。

其他信息:這個函數(shù)在Python2的返回值是直接返回list類型,而在Python3是返回一個map類型,但是map類型要去通過list() 轉(zhuǎn)換才可以輸出結(jié)果

 map() 函數(shù)是Python中的內(nèi)置函數(shù),這個函數(shù)又叫做映射函數(shù),其實里面具有一個迭代器的功能,會依次遍歷可迭代對象進行相關(guān)的操作。

help(map) 查看這個函數(shù)的相關(guān)信息 

示例:

示例(1):輸出map()函數(shù)返回值(迭代器)結(jié)果

def fun(n):
    return n**2
if __name__=='__main__': #判斷是不是執(zhí)行文件
    li=[x for x in range(1,12)]
    re=map(fun,li)
    print(type(re))
    print(list(re))
    print(tuple(re))
#輸出結(jié)果:<class 'map'>
#         [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121]
#         ()

 這里可以看出,re是一個map類型,當(dāng)我們用list去轉(zhuǎn)換re的類型,可以看到輸出結(jié)果,但是如果我們用tuple去轉(zhuǎn)換類型卻輸出不了結(jié)果,所以map類型只能通過列表類型去轉(zhuǎn)換輸出結(jié)果。

def fun(n):
    return n**2
if __name__=='__main__':
    li=[x for x in range(1,12)]
    re=map(fun,li)
    for i in re:
        print(i,end=' ')
#輸出結(jié)果:1 4 9 16 25 36 49 64 81 100 121 

這里可以看出,map的返回值是一個迭代器,我們可以去通過循環(huán)依次輸出結(jié)果,在輸出的時候會觸發(fā)fun() 函數(shù)的作用,fun() 函數(shù)會依次作用給每一個迭代對象,然后輸出

示例(2):與循環(huán)對比

那這里就有人會問了,為什么不用循環(huán)去實現(xiàn)這種功能呢?循環(huán)不也可以嗎?當(dāng)然可以,只是效率沒有map() 函數(shù)高,而且沒有用map() 這么秀~

def fun(n):
    return n**2
if __name__=='__main__':
    li=[x for x in range(1,12)]
    re=[]
    for i in li:
        num=fun(i)
        re.append(num)
    print(re)
#輸出結(jié)果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121]

示例(3):字符串轉(zhuǎn)列表

if __name__=='__main__':
    str1='123456'
    result=map(int,str1)
    print(list(result))
#輸出結(jié)果:[1, 2, 3, 4, 5, 6]

示例(4):元組轉(zhuǎn)列表

if __name__=='__main__':
    tu=(x for x in range(1,11))
    result=map(str,tu)
    print(list(result))
#輸出結(jié)果:['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']

示例(5):提取字典的鍵key,通過函數(shù)作用放入到列表當(dāng)中

def fun(n):
    return n*2
if __name__=='__main__':
    d={1:'good',2:'nice',3:'wao',4:'bless'}
    result=map(fun,d)
    print(list(result))
#輸出結(jié)果:[2, 4, 6, 8]

示例(6):與lambda函數(shù)結(jié)合

1.

if __name__=='__main__':
    li=[x for x in range(-7,8) if x%2==0]
    result=map(lambda y:y**2+y,li)
    print(list(result))
#輸出結(jié)果:[30, 12, 2, 0, 6, 20, 42]

2.多個可迭代對象

if __name__=='__main__':
    li=[1,3,5,7]
    lil=[2,4,6,8]
    result=map(lambda x,y:x+y,li,lil)
    print(list(result))
#輸出結(jié)果:[3, 7, 11, 15]
if __name__=='__main__':
    li=[1,3,5,7]
    lil=[2,4,6]
    result=map(lambda x,y:x+y,li,lil)
    print(list(result))
#輸出結(jié)果:[3, 7, 11]

這里說明一下:如果是對兩個或者兩個以上可迭代對象進行處理的話,是根據(jù)序列的下標一一對應(yīng)處理,比如上面的例子,是按照1+2,3+4,5+6,7+8依次輸出結(jié)果,但是第二個例子沒有8,故無法對下標為 3 的位置進行處理,所以輸出結(jié)果只有三個。

3.多個可迭代對象返回元組形式

if __name__=='__main__':
    li=[1,2,3,4]
    lil=[5,6,7,8]
    result=map(lambda x,y:(y,x),li,lil)
    print(list(result))
#輸出結(jié)果:[(5, 1), (6, 2), (7, 3), (8, 4)]

4.元組與列表共同作用

if __name__=='__main__':
    li=[a for a in range(0,4)]
    tu=(b for b in range(4,8))
    result=map(lambda x,y:(x**2,y-5),li,tu)
    print(list(result))
#輸出結(jié)果:[(0, -1), (1, 0), (4, 1), (9, 2)]

這里可以看出,iterable……可以是列表或者元組,只要有下標且對應(yīng)的都可以進行參與運算

示例(7):math函數(shù)作為function

import math
if __name__=='__main__':
    li=[a for a in range(-5,4)]
    result=map(lambda x:round(math.sin(x),2),li) #保留兩位小數(shù)
    print(list(result))
#輸出結(jié)果:[0.96, 0.76, -0.14, -0.91, -0.84, 0.0, 0.84, 0.91, 0.14]

到此這篇關(guān)于Python高階函數(shù)map() 簡介和使用詳解的文章就介紹到這了,更多相關(guān)Python 高階函數(shù)map使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python調(diào)用GPU算力的實現(xiàn)步驟

    Python調(diào)用GPU算力的實現(xiàn)步驟

    本文介紹了在Python中調(diào)用GPU算力的基本步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • Pytorch技巧:DataLoader的collate_fn參數(shù)使用詳解

    Pytorch技巧:DataLoader的collate_fn參數(shù)使用詳解

    今天小編就為大家分享一篇Pytorch技巧:DataLoader的collate_fn參數(shù)使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python 中制作偶數(shù)列表的方法

    Python 中制作偶數(shù)列表的方法

    這篇文章主要介紹了Python 中制作偶數(shù)列表的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • python利用itertools生成密碼字典并多線程撞庫破解rar密碼

    python利用itertools生成密碼字典并多線程撞庫破解rar密碼

    這篇文章主要介紹了python利用itertools生成密碼字典并多線程撞庫破解rar密碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 教你使用Sublime text3搭建Python開發(fā)環(huán)境及常用插件安裝另分享Sublime text3最新激活注冊碼

    教你使用Sublime text3搭建Python開發(fā)環(huán)境及常用插件安裝另分享Sublime text3最新激活注冊碼

    這篇文章主要介紹了使用Sublime text 3搭建Python開發(fā)環(huán)境及常用插件安裝,并提供了最新Sublime text 3激活注冊碼需要的朋友可以參考下
    2020-11-11
  • python爬蟲之利用Selenium+Requests爬取拉勾網(wǎng)

    python爬蟲之利用Selenium+Requests爬取拉勾網(wǎng)

    這篇文章主要介紹了python爬蟲之利用Selenium+Requests爬取拉勾網(wǎng),文中有非常詳細的代碼示例,對正在學(xué)習(xí)python爬蟲的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • python實例小練習(xí)之Turtle繪制南方的雪花

    python實例小練習(xí)之Turtle繪制南方的雪花

    Turtle庫是Python語言中一個很流行的繪制圖像的函數(shù)庫,想象一個小烏龜,在一個橫軸為x、縱軸為y的坐標系原點,(0,0)位置開始,它根據(jù)一組函數(shù)指令的控制,在這個平面坐標系中移動,從而在它爬行的路徑上繪制了圖形
    2021-09-09
  • 基于python實現(xiàn)鼠標實時坐標監(jiān)測

    基于python實現(xiàn)鼠標實時坐標監(jiān)測

    這篇文章主要給大家介紹了如何基于python實現(xiàn)鼠標實時坐標監(jiān)測,文章通過代碼示例介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-11-11
  • Python+Pygame編寫一個Pong游戲

    Python+Pygame編寫一個Pong游戲

    Pong游戲模擬了兩個打乒乓球的人,就是在兩條線中間有一個點在動,操縱器就是一個搖桿上有一個按鈕的那種。本文就來用Python中的Pygame庫編寫一個Pong小游戲
    2023-01-01
  • pandas merge報錯的解決方案

    pandas merge報錯的解決方案

    這篇文章主要介紹了pandas merge報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論

化州市| 灵璧县| 天柱县| 兴文县| 定西市| 秦安县| 吉林市| 肥东县| 襄樊市| 会泽县| 哈尔滨市| 黄浦区| 卢氏县| 乌鲁木齐县| 开江县| 塔河县| 高雄市| 盖州市| 来凤县| 阳信县| 洛扎县| 界首市| 竹溪县| 张家川| 井陉县| 灯塔市| 阜平县| 新乐市| 乡宁县| 浦县| 三都| 舞钢市| 永吉县| 五寨县| 安阳县| 镇沅| 南召县| 进贤县| 油尖旺区| 乌鲁木齐县| 德安县|