map函數(shù)的用法如下:
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、寬城網(wǎng)站維護、網(wǎng)站推廣。
map(func, lst) ,將傳?的函數(shù)變量 func 作?到 lst 變量的每個元素中,并將結(jié)果組成新的列表 (Python2)/ 迭代器(Python3) 返回。
注意:
map()返回的是一個迭代器,直接打印map()的結(jié)果是返回的一個對象。
map函數(shù)示例代碼:
lst = ['1', '2', '3', '4', '5', '6']
print(lst)
lst_int = map(lambda x: int(x), lst)
# print(list(lst_int))
for i in lst_int:
print(i, end=' ')
print()
print(list(lst_int))
map() 會根據(jù)提供的函數(shù)對指定序列做映射。
第一個參數(shù) function 以參數(shù)序列中的每一個元素調(diào)用 function 函數(shù),返回包含每次 function 函數(shù)返回值的新列表。 擴展資料
map() 函數(shù)語法:
map(function, iterable, ...);
參數(shù):
function -- 函數(shù);
iterable -- 一個或多個序列
map()是 Python 內(nèi)置的高階函數(shù),它接收一個函數(shù) f 和一個 list,并通過把函數(shù) f 依次作用在 list 的每個元素上,得到一個新的 list 并返回。
你傳入的 '12345'字符串也是屬于列表。每個元素就是 ['1','2','3','4','5']
所以第一個輸出的無可厚非。
第二個報錯其實原因就是因為你的digits里面沒有'1'這個key,所以會報錯。
根本不會出現(xiàn)'12345'這個key的。如果想出現(xiàn),就把代碼修改下
def?char(s):
digits?=?{'0':?0,?'12345':?1,?'2':?2,'3':?3,?'4':?4,?'5':?5,?'6':?6,'7':?7,?'8':?8,?'9':?9}
return?digits[s]
list(map(char,['12345','2','3','4','5']))
1、對可迭代函數(shù)'iterable'中的每一個元素應(yīng)用‘function’方法,將結(jié)果作為list返回。
來個例子:
def add100(x):
... return x+100
...
hh = [11,22,33]
map(add100,hh)
[111, 122, 133]
就像文檔中說的:對hh中的元素做了add100,返回了結(jié)果的list。
2、如果給出了額外的可迭代參數(shù),則對每個可迭代參數(shù)中的元素‘并行’的應(yīng)用‘function’。(翻譯的不好,這里的關(guān)鍵是‘并行’)
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中,取出了下標相同的元素,執(zhí)行了abc()。
3、如果'function'給出的是‘None’,自動假定一個‘identity’函數(shù)(這個‘identity’不知道怎么解釋,看例子吧)
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)]
map()函數(shù)接收兩個參數(shù),一個是函數(shù),一個是序列,map將傳入的函數(shù)依次作用到序列的每個元素,并把結(jié)果作為新的list返回。
舉例說明,比如我們有一個函數(shù)f(x)=x%2,要把這個函數(shù)作用在一個list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()實現(xiàn)
#使用lambda函數(shù)
print map(lambda x: x % 2, range(7))
[0, 1, 0, 1, 0, 1, 0]
一個最簡單的例子,如基于f(x) = x2,map()作用于list [1, 2, 3, 4, 5, 6, 7, 8, 9]后的結(jié)果如下:返回結(jié)果仍為list
map是python內(nèi)置函數(shù),會根據(jù)提供的函數(shù)對指定的序列做映射。
_ap()函數(shù)的格式是:map(function,iterable,...)