Python Map 函數詳解

如果你正在學習編程,那麼掌握 Python map 函數是你升級的機會。

想象一下:你想成為一個更高效的程序員,你希望代碼編譯得更快,你想用你強大的編程知識給同行留下深刻印象。如果你對其中任一點有共鳴,那麼你來對地方瞭。

在我們繼續之前,你需要瞭解什麼是函數和可迭代對象:

函數是執行特定任務的代碼。

例如:len(), print(), str()

可迭代對象是包含一個或多個項的對象。

例如:列表字典元組

Python map 函數是一個允許你使用另一個函數轉換整個可迭代對象的函數。這裡的關鍵概念是轉換,它可以包括但不限於:

  • 將字符串轉換為數字
  • 四舍五入數字
  • 獲取每個可迭代項的長度

你可能想知道,“為什麼我不能用 for 循環來做上面的事情?”

答案是:你可以。但是使用 Python map 函數可以節省內存(這意味著你的代碼運行得更快),並且需要更少的代碼。讓我們通過一個例子來表達我的意思。

首先我們從 for 循環開始

假設你有一個數字組成的字符串列表,你需要將字符串列表轉換為整數:

list_of_strings = [“5″,”6″,”7″,”8″,”9”, “10”]

你可以使用空列表和 for 循環來完成此操作:

list_of_strings = ["5","6","7","8","9", "10"]
result = []
for string in list_of_strings:
    result.append(int(string))
print(result)

這個示例運行的結果是:

輸出:[5, 6, 7, 8, 9, 10]

for 循環背後發生瞭什麼

你可能對結果感到滿意,但想想你的代碼剛剛做瞭什麼。

你告訴計算機遍歷每個項目(“5”、“6”、“7” 等),轉換項目,然後將該項目存儲在新列表中。雖然使用 for 循環來轉換列表是有效的,但它不是最佳的。

Python map 函數(附示例代碼)

相反,讓我們使用 Python map 函數來生成最佳結果。我們將從需要轉換的字符串列表開始:

list_of_strings = ["5","6","7","8","9", "10"]

然後我們將使用 Python map 函數將字符串列表轉換為整數列表:

result = map(int,list_of_strings)
print(list(result))

如果你運行上面的例子,你會得到相同的結果:

輸出:[5, 6, 7, 8, 9, 10]

在我們瞭解為什麼 Python map 函數比使用 for 循環更好之前,讓我們分解一下我們剛剛做的事情:

list_of_strings = ["5","6","7","8","9", "10"]

我們在這裡所做的隻是創建一個變量來存儲我們想要轉換為數字的字符串列表。

result = map(int,list_of_strings)

讓我們從裡到外分解上面的代碼。Python map 函數的語法如下:

map(insert function here, insert iterable here)

map() 隻是 Python map 函數的名稱,沒什麼特別的。

insert function here 是你將在函數中寫入的空間。在上面的代碼示例中,我們使用瞭 int 函數。我們可以使用另一個內置函數,如 len() ,或者我們可以構建自己的函數並在這裡也使用它。

insert iterable here 是你將在你選擇的可迭代項目中寫入的空間。在本例中,我們插入瞭列表(list_of_strings)。

result 是我們存儲新轉換項目的變量。

讓我們轉到最後一行代碼。同樣,它將從內而外執行:

print(list(result))

list() 接收我們新轉換的可迭代項,並告訴我們的計算機這些項是列表的一部分。

print() 打印出我們的新列表!

Python map 函數背後發生瞭什麼

Python map 函數不是遍歷字符串列表的每個項目,而是將整個字符串列表轉換為數字列表。你節省瞭內存,並且代碼運行得更快。

如果要轉換項目,使用 Python map 函數比 for 循環更好

最後,Python map 函數比 for 循環更優雅,將幫助你更快地編譯代碼。

使用 Python map 函數將有助於將你的編程技能提升到一個新的水平,讓你成為一名更好的程序員。在此過程中,你甚至可以用這項新技能給你的同行留下深刻印象。

總結

Python map 函數隻是一個開始。還有更多 Python 技巧可以幫助你編寫更優雅的代碼並提升你的編程技能。祝你學習愉快!

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: