它接收乙個函式 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...