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

Python中很常用的函數(shù)map()用法實例

 更新時間:2023年10月14日 14:35:27   作者:搗鼓Python  
這篇文章主要給大家介紹了關于Python中很常用的函數(shù)map()用法的相關資料,map()函數(shù)是Python的內置函數(shù),會根據(jù)提供的函數(shù)參數(shù),對傳入的序列數(shù)據(jù)進行映射,需要的朋友可以參考下

一、函數(shù)作用

map()函數(shù)是Python中的一個內置函數(shù),它的功能是:將指定的函數(shù),依次作用于可迭代對象的每個元素,并返回一個迭代器對象。這個可迭代對象,可以是一個也可以是多個。

二、map()函數(shù)的語法

語法

map(function,iterable,...)

參數(shù)

function-我們指定的函數(shù)(或數(shù)據(jù)類型),可以是python內置的,也可以是自定義的。

iterable-可迭代的對象,例如列表,元組,字符串等。

返回值

返回一個可迭代對象,一般搭配list()使用,輸出列表

三、map()函數(shù)實例

案例1

可迭代對象傳遞給map()函數(shù),然后map()函數(shù)將這個可迭代對象傳入自定義函數(shù)。

#自定義一個函數(shù)a,返回x*2的值
def a(x):
    return x*2

#定義列表
lis1=[1,3,5,7,9]

#對列表中的每個數(shù)運用函數(shù)a,返回迭代器
lis1_a=map(a,lis1)

#輸出迭代器中的值
for num in lis1_a:
    print(num)
    
#輸出結果
'''
2
6
10
14
18
'''

案例分析

函數(shù)a()是我們自定義的一個有參函數(shù),list1是我們定義的一個列表,map()函數(shù)將列表中的每個值,按照函數(shù)a()進行運算,并返回一個迭代器lis1_a。此時lis1_a的數(shù)據(jù)類型是:<class 'map'>,我們運用for循環(huán)遍歷輸出迭代器lis1_a的值。

案例2

可迭代對象傳遞給map()函數(shù),然后map()函數(shù)將這個可迭代對象進行數(shù)據(jù)類型轉換。

#定義一個列表a
a = ['1','2','3']

#將列表中的每個字符串,轉換成浮點型,并返回迭代器
b = map(float,a)

#輸出迭代器中的值
for num in b:
    print(num)

#輸出結果
'''
1.0
2.0
3.0
'''

案例分析

float是我們要轉換的數(shù)據(jù)類型,列表a是我們定義的一個列表,map()函數(shù)將列表a中的值運用float()函數(shù)進行轉換,并返回一個迭代器b 。此時b的數(shù)據(jù)類型是:<class 'map'>,我們運用for循環(huán)遍歷輸出迭代器b的值。

案例3

多個可迭代對象傳遞給map()函數(shù),然后map()函數(shù)將這2個迭代對象傳入自定義函數(shù)a()。注意:這個自定義函數(shù)a()的參數(shù)個數(shù),要與傳入的可迭代對象數(shù)量一致。

# 定義一個函數(shù)
# 該函數(shù)采用2參數(shù)
def a(x,y):

    return x * y

# 定義列表1
lis1 = [1, 3, 5, 7, 9]
# 定義列表2
lis2 = [2, 4, 6, 8, 10]

# 將兩個列表中的值,傳入函數(shù)a,并返回可迭代器
lis_a = map(a, lis1, lis2)

#輸出迭代器中的值
for num in lis_a:
    print(num)
    
#輸出結果
'''
2
12
30
56
90
'''

案例分析

函數(shù)a()是我們自定義的一個函數(shù),因為后面要對傳入的2個可迭代對象進行運算。所以,函數(shù)a()必須有2個形參。lis1和lis2是我們定義的2個列表,map()函數(shù)將這2個列表中的中,分別傳入函數(shù)a()進行運算,返回一個迭代器lis_a。此時的lis_a的數(shù)據(jù)類型是:<class 'map'>,我們運用for循環(huán)遍歷輸出迭代器lis_a的值。

四、運行結果出現(xiàn):<map object at 0x000001809CD03400>報錯 

在Python3中,運用map()函數(shù),如果格式有誤,就會出現(xiàn)上面的報錯結果。

案例

a = ['1','3','5']
b = map(int,a)
print(b)
print(type(b))

#輸出結果
'''
<map object at 0x0000025781BBB610>
<class 'map'>
'''

案例分析

列表a是我們定義的一個列表,map()函數(shù)將列表a中的值,抓轉成int,此時返回的是一個迭代器b,它是一個map對象。如果想得到列表對象,則還需要調用list()函數(shù),轉化為列表對象。

報錯總結:

  • Python2中map直接返回作用后的元素的列表 
  • Python3中map返回的則是一個map對象
  • 如果想得到列表對象,則還需要調用list轉化為列表對象
  • Python2中,map()函數(shù)的 function 可以為None,如map(iterable1,iterable2[,...[,iterable n),其作用類似于將iterable*中的對應索引的值取出作為一個元組,最終返回一個包含多個元組的列表。而Python3中,map()函數(shù)如果不指定 function,則最終對返回的map對象轉換時就會拋"map() must have at least two arguments."。

補充:求兩個數(shù)列中對應元素的和

有的人可能會說a是一個數(shù)列,b是另一個數(shù)列,求兩個數(shù)列的和那還不簡單,直接a+b不就好了。那我們來做個小實驗,看看python中兩個數(shù)列直接用+加起來會得到什么,代碼如下:

?a = [2, 6, 3]
b = [3, 4, 5]
a + b

得到結果:

[2, 6, 3, 3, 4, 5]

可以發(fā)現(xiàn)python中兩個數(shù)列求+,直接將兩個數(shù)列拼接后返回。聰明的你想到用map函數(shù)怎么操作了嗎?具體代碼如下:

?a = [2, 6, 3]
b = [3, 4, 5]
list(map(lambda a,b:a+b, a, b))

得到結果:

[5, 10, 8]

人工加一下可以發(fā)現(xiàn)答案是對的。

總結 

到此這篇關于Python中很常用的函數(shù)map()用法的文章就介紹到這了,更多相關Python中函數(shù)map()用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

邢台县| 海南省| 原平市| 三河市| 富锦市| 远安县| 昌宁县| 左贡县| 习水县| 原平市| 东乌| 阜南县| 夏邑县| 阳信县| 鹤岗市| 舞阳县| 体育| 曲沃县| 克山县| 齐河县| 寿光市| 广水市| 司法| 名山县| 固安县| 马龙县| 靖州| 苍溪县| 灌阳县| 沅江市| 浮梁县| 出国| 辽阳市| 崇明县| 阿坝县| 宜兰市| 正阳县| 贵溪市| 黄梅县| 阳曲县| 武宁县|