Python中的列表理解(附示例)
已發表: 2021-08-22Python 是世界上最流行的編程語言之一。 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 中最強大的功能之一。 字典理解允許您為兩個列表創建字典。 它使用鍵和值來創建所需的字典。 是的,在大多數情況下,列表理解是創建列表的更好方法。 與 for 循環相比,它需要更少的代碼、時間和計算能力來生成列表。 Python 中的列表推導有什麼作用?
什麼是字典理解?
列表理解比 for 循環更好嗎?