關於map的作用

2021-09-01 23:47:46 字數 1842 閱讀 2797

它接收乙個函式 f 和乙個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。list 可以是數字列表,也可以是字串列表,注意:map()函式不改變原有的 list,而是返回乙個新的 list。

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

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

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

def

f(x)

:return x*x

print

map(f,[1

,2,3

,4,5

,6,7

,8,9

])# 輸出結果:# [1, 4, 9, 10, 25, 36, 49, 64, 81]

例如2:假設使用者輸入的英文名字不規範,沒有按照首字母大寫,後續字母小寫的規則,請利用map()函式,把乙個list(包含若干不規範的英文名字)變成乙個包含規範英文名字的list:

def

format_name

(s):

s1=s[0:

1].upper(

)+s[1:

].lower();

return s1;

print

map(format_name,

['adam'

,'lisa'

,'bart'])

# 輸出:['adam', 'lisa', 'bart']

特殊說明:當提供了兩個或者更多的list的時候,map可以並行(注意是並行)地對每個list執行如下圖所示的過程:(下面圖中seq1,seq2…就是乙個個的list)

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 型別不是乙個可以呼叫的物件。所以他沒法返回值。

目的是將多個列表相同位置的元素歸併到乙個元組。如:

print map(none, [2,4,6],[3,2,1])

[(2, 3), (4, 2), (6, 1)]

但是在 python3中,返回是乙個迭代器,所以它其實是不可呼叫的

關於map的學習

map即為通過乙個物件尋找另乙個物件的檢視 實現類為hashmap,常用方法有put get containskey containsvalue clear remove put方法即為新增鍵值對 put key,value key和value均可以為任意物件 get,get key 即通過key值...

集合 關於Map

map集合是雙列集合的頂層介面,下面分為treemap和hashmap.那麼我們先來看一下map和collection的區別 1.map是雙列的,而collection是單列的 2.map的鍵都是唯一的,而collection中只有set集合的值是唯一的 3.map集合的資料結構值針對鍵有效,跟值無...

關於map迴圈

map 方法建立乙個新陣列,其結果是該陣列中的每個元素都呼叫乙個提供的函式後返回的結果,不能改變原始陣列。該函式接受的三個引數為 當前元素 當前索引 當前被呼叫的陣列 var numbers 1 4,9 var roots numbers.map math.sqrt roots的值為 1,2,3 n...