有福利哦,小編整理了多套python學習資源,限時免費分享了!獲取方式在文末哈!
map()函數是 Python 內置的高階函數,它接收一個函數 f 和一個list(或多個 list,但list個數與f函數的參數個數必須相等),並通過把函數 f 依次作用在 list 的每個元素上,得到一個新的 list 並返回。
簡而言之,map()函數可以把一個list,轉換為另一個新的list,它並不改變原來的list。
在python3.x版本里面,map()的返回值是iterators,而不是list, 所以想要使用,需將iterator 轉換成list ,而在python2.x版本里,map()是直接返回list
map()函數可以做類型轉換:
a = input("輸入的字符串為").split() #input()默認輸入的是字符串
l=map(int,a) #將數值型字符串轉換成整數型
for i in l:
print(type(i),i)
for i in a:
print(type(i),i)
程序運行結果:
輸入的字符串為123 456 789
<class> 123
<class> 456
<class> 789
<class> 123
<class> 456
<class> 789
/<class>/<class>/<class>/<class>/<class>/<class>
map()函數可以格式化輸入一行整數:
a = list(map(int,input().split()))
map()函數可以把一個list,轉換為另一個新的list,它並不改變原來的list:
a = [1,2,3,4,5,6]
b = [2,4,6,8,10,12]
def f1(n):
return n**2
print(list(map(f1,a)))
def f2(n,m):
return n+m
print(list(map(f2,a,b)))
print(a,b)
程序運行結果:
[1, 4, 9, 16, 25, 36]
[3, 6, 9, 12, 15, 18]
[1, 2, 3, 4, 5, 6] [2, 4, 6, 8, 10, 12]
注:#在python3.x版本里面,map()的返回值是iterators,而不是list, 所以想要使用,需將iterator 轉換成list ,而在python2.x版本里,map()是直接返回list
print(map(f1,a))
程序運行結果:
list可以包含任意的類型,因此map()函數可以處理任意類型的list,前提條件是f函數包含這種類型:
def f1(s):
return len(s),s.count("i")#統計列表裡每一個元素的長度,某個單詞出現的個數。
def f2(s):
s=s[0:1].upper()+s[1:].lower() #讓列表裡的每一個元素,首字母大寫,其餘字母小寫。
return s
s = ["i","like", "python"]
print(list(map(f1,s)))
print(list(map(f2,s)))
程序運行結果:
[(1, 1), (4, 1), (6, 0)]
['I', 'Like', 'Python']
map()函數可以並行的處理每一個list (list中的元素種類必須一致):
# a,b元素個數一樣。
# a,b元素個數一樣。
a = [1,2,3,4,5]
b = [2,4,6,8,10]
l =list(map(lambda x,y:x+y,a,b))
print(l)
程序運行結果:
[3, 6, 9, 12, 15]
# 類型不一樣,會報錯。
# 類型不一樣,會報錯。
a = [1,2,3,4,"a"]
b = [2,4,6,8,10]
l =list(map(lambda x,y:x+y,a,b))
print(l)
程序運行結果:(報錯)
File "<ipython-input-29-5e3632bf63ea>", line 1
a = [1,2,3,4,"a"]
^
SyntaxError: invalid character in identifier
/<ipython-input-29-5e3632bf63ea>
python學習資源獲取方式:
- 點擊關注,後臺私信小編。回覆:python(溫馨提示:都是小寫字母哦!)
- 請在評論區評論,點贊+好評
閱讀更多 python秀 的文章