09.25 python函數系列連載(一)|原來 map()函數如此易學!內置福利哦!

有福利哦,小編整理了多套python學習資源,限時免費分享了!獲取方式在文末哈!

python函數系列連載(一)|原來 map()函數如此易學!內置福利哦!

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(溫馨提示:都是小寫字母哦!)
  • 請在評論區評論,點贊+好評


分享到:


相關文章: