国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python中map的基本用法示例

2020-02-15 22:56:53
字體:
來源:轉載
供稿:網友

map()函數

map() 會根據提供的函數對指定序列做映射,是內置函數

第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。

語法

map(function, iterable, ...)

map()是 Python 內置的高階函數,它接收一個函數 f 和一個 list,并通過把函數 f 依次作用在 list 的每個元素上,得到一個新的 list 并返回。

1、當seq只有一個時,將函數func作用于這個seq的每個元素上,并得到一個新的seq。

例如,對于list [1, 2, 3, 4, 5, 6, 7, 8, 9]

如果希望把list的每個元素都作平方,就可以用map()函數:

因此,我們只需要傳入函數f(x)=x*x,就可以利用map()函數完成這個計算:

def f(x): return x*xprint map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])

輸出結果:

[1, 4, 9, 10, 25, 36, 49, 64, 81]

注意:map()函數不改變原有的 list,而是返回一個新的 list。

利用map()函數,可以把一個 list 轉換為另一個 list,只需要傳入轉換函數。

由于list包含的元素可以是任何類型,因此,map() 不僅僅可以處理只包含數值的 list,事實上它可以處理包含任意類型的 list,只要傳入的函數f可以處理這種數據類型。

假設用戶輸入的英文名字不規范,沒有按照首字母大寫,后續字母小寫的規則,請利用map()函數,把一個list(包含若干不規范的英文名字)變成一個包含規范英文名字的list:

輸入:['adam', 'LISA', 'barT']

輸出:['Adam', 'Lisa', 'Bart']

def format_name(s): s1=s[0:1].upper()+s[1:].lower(); return s1;print map(format_name, ['adam', 'LISA', 'barT'])

2、當seq多于一個時,map可以并行(注意是并行)地對每個seq執行如下圖所示的過程:

l2=map(lambda x,y:x**y,[1,2,3],[1,2,3])for i in l2: print(i)l3=map(lambda x,y:(x**y,x+y),[1,2,3],[1,2,3])for i in l3: print(i)python3中可以處理類表長度不一致的情況,但無法處理類型不一致的情況,l4=map(lambda x,y:(x**y,x+y),[1,2,3],[1,2])for i in l4: print(i)l4=map(lambda x,y:(x**y,x+y),[1,2,3],[1,2,'a'])for i in l4: print(i)

特殊用法,做類型轉換: 

l=map(int,'1234')for i in l: print(type(i)) print(i)

如果函數是 None,自動假定一個‘identity'函數,這時候就是模仿 zip()函數,

l=[1,2,3]x=map(None,l)print(x)

這時候 None 類型不是一個可以調用的對象。所以他沒法返回值。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新泰市| 岱山县| 安阳县| 青浦区| 马山县| 鹤峰县| 历史| 类乌齐县| 乐都县| 白水县| 南溪县| 伊吾县| 阿巴嘎旗| 汤原县| 哈巴河县| 蓬莱市| 崇义县| 南溪县| 安吉县| 左云县| 响水县| 穆棱市| 女性| 开远市| 越西县| 迁西县| 黑山县| 宜君县| 伊川县| 上林县| 垫江县| 清流县| 左贡县| 昌吉市| 桐庐县| 无为县| 普兰店市| 昌都县| 甘肃省| 苍南县| 云安县|