Python知识:关于map
生活随笔
收集整理的這篇文章主要介紹了
Python知识:关于map
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1 當(dāng)作函數(shù)
python的map類似于,函數(shù)y = f( x )
x= [1,2,3,4]
y = map( lambda x:x**2,l)
print(list(x) )
map()傳入的第一個(gè)參數(shù)是f,即函數(shù)對(duì)象本身。由于結(jié)果r是一個(gè)Iterator,Iterator是惰性序列,因此通過(guò)list()函數(shù)讓它把整個(gè)序列都計(jì)算出來(lái)并返回一個(gè)list。你可能會(huì)想,不需要map()函數(shù),寫一個(gè)循環(huán),也可以計(jì)算出結(jié)果。但是,map要比循環(huán)更快,更穩(wěn)健。
2 多元函數(shù)
可以實(shí)現(xiàn)多個(gè)序列構(gòu)成的函數(shù)運(yùn)算。
例1 基于兩個(gè)list的示例
lst = [[1,6,8,9] ,[2,3,8,1]] f = lambda x,y : x+y if (x+y) >=15 else x-y ss = map(f ,lst[0],lst[1]) print( list(ss) )結(jié)果:[-1, 3, 16, 8]
例2 基于array的示例
import numpy as np lst = np.array([ [1,2 ],[6,3],[8,8],[9,1] ]) f = lambda x,y : x+y if (x+y) >=15 else x-y ss = map(f ,lst[:,0],lst[:,1]) print( list(ss) )結(jié)果:[-1, 3, 16, 8]?
3 批量處理
從文件讀入的數(shù)據(jù),是個(gè)字符串格式,如何將其轉(zhuǎn)化成數(shù)組格式,map是很有效的方法。請(qǐng)看下例:
stData = '1,22,33,434,545,646,7567' data = map( int, stData.split(',') ) print( list(data) )結(jié)果: [ 1, 22, 33, 434, 545, 646, 7567 ]?
總結(jié)
以上是生活随笔為你收集整理的Python知识:关于map的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: GraphViz :1 安装和简单使用
- 下一篇: 用sk-learn的pipline的时候