map() 對list列操作、行列轉(zhuǎn)換

map() 對list的同一下標(biāo)操作(對列操作)

讀入的參數(shù)是(函數(shù),list1,list2,list3)


>>>def? abc(a, b, c):

...??????????? return? a*10000+b*100+c

>>> list1=[11,22,33]

>>> list2=[44,55,66]

>>> list3=[77,88,99]

>>>map (abc,list1,list2,list3)

[114477,225588,336699]

看到并行的效果了吧!在每個list中,取出了下標(biāo)相同的元素,執(zhí)行了abc()。


——————————————

>>> list1=[11,22,33]

>>>map(None,list1)

[11,22,33]

>>> list1=[11,22,33]

>>> list2=[44,55,66]

>>> list3=[77,88,99]

>>>map(None,list1,list2,list3)

[(11,44,77), (22,55,88), (33,66,99)]


行列轉(zhuǎn)換了誒~~~~


等同zip……h(huán)ttp://www.cnblogs.com/frydsh/archive/2012/07/10/2585370.html

x = [1, 2, 3]

y= [4, 5, 6]

z= [7, 8, 9]

xyz=zip(x, y, z)

print xyz

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

——————————————————

基本用法:

Map函數(shù):

原型:map(function, sequence),作用是將一個列表映射到另一個列表,

使用方法:

def f(x):

?????? return x**2

l = range(1,10)

map(f,l)

Out[3]: [1, 4, 9, 16, 25, 36, 49, 64, 81]

http://my.oschina.net/zyzzy/blog/115096


注意!python3的變化

>>> map(lambda x: x, [1,2,3])??

返回的就是一個map對象

>>> list(map(lambda x: x, [1,2,3]))

[1, 2, 3]

感覺Python3的用意是map用來處理大數(shù)據(jù),所以返回 iteration 免得吃掉太多內(nèi)存,一般情況下用list comprehension,或者直接for循環(huán)。

官方不推薦map生成list

http://segmentfault.com/a/1190000000322433

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容