Python中的列表理解(附示例)

已發表: 2021-08-22

Python 是世界上最流行的編程語言之一。 2020年在RedMonk編程語言流行度排名中位列第二 其廣泛流行的原因在於其易於理解的代碼和簡單性。 如果您熟悉語法,用 python 編寫代碼非常簡單。 它的獨特亮點之一是它的列表理解功能。 只需編寫一行代碼,您就可以對列表執行 Python 理解!

以下幾點將說明什麼是列表推導以及如何在不同的設置中使用它。 我們還將介紹列表推導式和 for 循環之間存在的差異,這可能會讓人很困惑。 您還將了解其他相關功能以及如何使用它們:

目錄

什麼是列表理解 Python?

Python 提供了多種創建列表的方法。 其中最有效的方法之一是列表理解功能。 它允許您通過編寫一行代碼來創建列表。

您可以使用列表推導從其他可迭代元素(例如數組、字符串、元組、列表等)創建新列表。它由帶有表達式的括號組成。 系統使用 for 循環為每個元素執行表達式以迭代每個元素。

Python 中列表推導的語法如下:

your_new_list = [條件條件下 your_old_list 中元素的表達式]

在這裡, your_new_list 是新列表(或結果)。 該表達式取決於您用於 your_old_list 中每個元素的變量。 最後,“if 條件”是過濾器。

Python 開發人員更喜歡列表推導而不是循環的原因有很多。 主要原因是效率。 與使用循環相比,使用列表推導式創建列表的工作量和代碼要少得多

由於它需要的代碼行數比循環少,因此列表理解還可以為您節省大量時間。 它使代碼保持簡單並使其更加用戶友好。 此外,列表推導涵蓋了公式中的迭代語句。 如果您想獲得更多關於 python 的專業知識,請查看我們來自頂尖大學的數據科學課程。

列表理解 Python 示例

我們將分享幾個如何在 Python 中使用列表推導式的示例。 在您了解它們的工作原理後,最好研究它們並在您自己的程序中復制它們。 它將幫助您正確理解工具列表理解的真正有效性:

示例 1:

在本例中,我們將使用 Python 推導式創建一個簡單的列表:

輸入

a = [i for i in range(5)]

打印一個

輸出

[0, 1, 2, 3, 4]

示例 2:

在下面的示例中,我們將創建一個包含 2 的倍數的列表:

輸入

new_list = [a*2 for a in range(10)]

輸出

[0、2、4、6、8、10、12、14、16、18]

示例 3

您可以使用列表推導將列表中的每個項目相乘:

輸入

old_list = [1, 2, 3]

new_list = [舊列表中項目的項目*2]

打印新列表

輸出

[2, 4, 6]

示例 4

列表理解不僅限於整數,您還可以將它與字符串一起使用。 在此示例中,我們將使用列表推導來創建原始列表中每個單詞的首字母的列表

輸入

my_list = [“升級”,“是”,“有趣”]

結果 = [word[0] for my_list 中的單詞]

打印結果

輸出

['你','我','f']

示例 5

您還可以使用列表推導從字符串中提取數字

輸入

old_list = “upGrad 123 很有趣”

new_list = [x for x in string if x.isdigit()]

打印新列表

輸出

['1', '2', '3']

示例 6:

您還可以將列表推導與函數一起使用,這是 Python 數學實現的重要組成部分:

輸入

# 首先,我們將創建一個名為 Triple 的函數

定義三元組(x

返回 x*3

# 現在你有一個工作函數,如果你輸入一個有效值,它會打印一個結果

>>> 打印三重奏(2)

輸出

6

現在您可以使用此函數的列表推導來創建更多列表

輸入

>>> [triple(x) for x in range(5)]

打印三重

輸出

[0, 3, 6, 9, 12]

列表理解和 for 循環之間的區別

遍歷列表的常用方法是使用 for 循環。 但是,列表推導式是一種更有效的遍歷列表的方法,因為它可以讓您用更少的代碼行來執行任務。

這是一個示例來說明差異。 我們將從一個空列表開始並對其進行修改以使其成為偶數列表:

輸入

# 創建空列表

舊列表 = []

# 使用 for 循環創建新列表

對於範圍內的 x (5):

old_list.append(x*2)

打印 old_list

輸出

[0, 2, 4, 6, 8]

如您所見,for 循環要求您使用 append 函數來創建新列表。 您還必須先創建一個空列表,以便可以使用循環對其進行修改。 但是,使用列表理解,您不必使用其他函數,因為您可以使用一行代碼完成任務:

輸入

# 使用列表推導創建集合

old_list = [x*2 for x in range(5)]

打印 old_list

輸出:

[0, 2, 4, 6, 8]

由於列表推導佔用的空間和代碼更少,因此與使用 for 循環相比,它還需要更少的計算能力。 這在處理大型程序時是有益的,因為當代碼很長時,效率成為一個關鍵問題。

然而,當你使用列表推導時,你應該避免在一行中使用過長的推導。 否則,代碼將不會保持用戶友好,並且與其他開發人員共享您的工作可能會非常具有挑戰性。 請記住,您將每個列表推導重寫為一個 for 循環,但您不能將每個 for 循環都重寫為一個列表推導。

列表理解是這種編程語言中存在的眾多 Python 理解功能之一。 另一個非常流行的理解功能是字典理解:

Python中的字典理解是什麼?

字典理解,顧名思義,允許您在 Python 中創建字典。 字典理解的語法是:

{k:v for (k,v) in iterable}

這裡,k 代表 key,v 代表 value。

讓我們在工作中看到它。 在下面的示例中,我們將創建兩個列表並使用字典推導從它們生成字典:

輸入:

# 使用 Python 展示字典理解

# 創建兩個列表來表示鍵和值

鍵 = [1, 2, 3, 4, 5]

值 = ['a', 'b', 'c' 'd', 'e']

# 實現字典理解

new_dict = { k:v for (k,v) in zip(keys, values)}

打印新字典

輸出:

{1:'a',2:'b',3:'c',4:'d'。 5:'e'}

字典理解使得在 Python 中創建字典變得非常容易。 但是,您也可以使用列表推導來生成字典。 在以下示例中,我們將使用列表推導並創建一個字典:

輸入:

new_dict = {x: x*2 for x in [5, 4, 3, 2, 1]}

打印新字典

輸出:

{5:10、4:8、3:6、2:4、1:2}

成為 Python 專家

列表理解是 Python 中存在的眾多功能之一。 它是一種高度通用且有用的編程語言。 此外,Python 的語法也很容易理解,需要花點時間才能習慣。 除了這些好處之外,Python 還為其用戶提供了許多庫。

它擁有一個蓬勃發展的開發人員和程序員社區,他們定期將新庫添加到其收藏中。 Python 可用的眾多庫和函數使其在軟件開發、數據科學、機器學習等不同領域非常有用。

如果你對學習 Python 感興趣,你應該在你想進入的領域的上下文中學習它。 此外,招聘人員總是尋找該領域的認證專業人士,因為它可以向他們保證候選人的專業知識。

由於這些原因,如果您有興趣從事這項技能的職業,最好參加 Python 課程。 班加羅爾國際信息技術學院通過 upGrad 提供軟件開發執行 PG 計劃,非常適合那些想成為這種編程語言專家並追求技術職業的人。 本課程將為您提供一種結構良好的方式來學習 Python 和其他趨勢技術,以幫助您進入該行業,成為一名准備好工作的專業人士。

upGrad 在 85 多個國家/地區擁有超過 40,000 名付費學習者。 加入該計劃還可以讓您通過 upGrad 龐大的學習者基礎建立國際網絡。 軟件開發執行 PG 課程是一個持續 13 個月的在線課程。 它只需要每週 15 小時的時間投入。

該計劃提供六個專業可供選擇

  • 網絡安全
  • 開發運維
  • 雲計算
  • 大數據
  • 區塊鏈開發
  • 全棧開發

除了這些優勢之外,upGrad 還通過該計劃提供 360 度的職業幫助,讓您輕鬆開啟職業生涯。 您可以在此處了解有關該課程的更多信息:軟件開發執行 PG 計劃

結論

您可以先嘗試使用簡單列表的列表推導,然後再使用此功能的更複雜的應用程序。 列表理解是 Python 編程靈活和健壯的一個例子。

您如何看待列表理解? 你會如何在你的程序中使用它?

Python 中的列表推導有什麼作用?

列表理解 Python 允許您高效地創建列表,並且只使用一行代碼。 它是 Python 中最強大的功能之一。

什麼是字典理解?

字典理解允許您為兩個列表創建字典。 它使用鍵和值來創建所需的字典。

列表理解比 for 循環更好嗎?

是的,在大多數情況下,列表理解是創建列表的更好方法。 與 for 循環相比,它需要更少的代碼、時間和計算能力來生成列表。