帶示例的 Python 列表理解 [2022]

已發表: 2021-06-29

通過在 python 中使用理解,可以從已經定義的序列中以簡潔或簡短的方式構造序列。 序列包括列表、字典、集合等數據結構。python 支持以下推導:

  • 列出理解
  • 字典理解
  • 設置理解
  • 生成器理解

本文將重點介紹 Python 中的列表推導及其用途。 就像python中的列表推導集和字典推導一樣,也可以創建。

目錄

什麼是列表理解?

Python 是一種被廣泛接受的編程語言,它為用戶提供了編寫簡單而優雅的代碼的能力。 列表理解是 python 的一個獨特功能,用於創建新列表。 通過使用單行代碼,可以創建功能。

列表推導中不必包含 if 條件,但是列表推導中可以包含多種形式。

因此,列表推導

  • 是一種基於現有列表定義和創建列表的優雅方式。
  • 與用於創建列表和循環的普通函數相比,列表推導更加緊湊和快速。
  • 為了使代碼更加用戶友好,應避免編寫長列表推導式。
  • 使用 for 循環時,可以重寫列表推導。

如何創建列表?

有幾種方法可以在編程語言 python 中創建列表。

1.for循環

For 循環可用於創建列表。 創建元素列表需要遵循三個步驟。

  • 將實例化一個空列表。
  • 循環用於可以迭代的元素。
  • 每個元素都附加到列表 end

2. map() 對象

另一種方法,即 map() 是基於函數式編程的。 當一個可迭代的函數和元素傳遞給 map() 時,就會創建一個對象。 通過提供的函數執行可迭代元素生成的輸出將包含在對像中。

3. 列表推導

製作列表的另一種方法是使用列表推導。 for 循環可以重寫為僅包含一行的代碼。

與先創建空列表然後在最後添加元素的早期方法相比,在這種情況下,它只發生在一行中。 列表和內容被簡單地同時定義。 使用的代碼是。

每個python 列表推導中都有三個元素

  • 表達式:它是成員,表達式是方法調用或返回值的任何表達式。
  • 成員:它是可迭代列表中的值或對象。 在上面的示例中,成員的值為 1。
  • 可迭代:它是一個列表、序列、集合或其他對象,其元素一次可以返回一個。 在上面的例子中,Iterable 是 range(10)。

即使在使用 map() 的地方, Python 列表推導也能很好地工作。 上面的例子可以重寫為。

使用 map() 和列表推導的區別在於,在列表推導的情況下返回一個列表,而在 map() 的情況下返回一個地圖對象。

條件語句

可以通過在列表推導中使用條件語句來修改現有列表。 無論是列表還是元組,都可以通過 python 列表推導進行修改。

1.使用if的條件

'if' 的條件可以通過以下代碼在列表理解中使用。

運行上述程序會生成輸出:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

2.使用嵌套IF的條件

列表推導執行以下檢查:

  • 元素 y 能被 2 還是 5 整除?
  • 如果 y 滿足這兩個條件,則將其附加到 num_list。

另請閱讀:現實世界中迷人的 Python 應用程序

3. 使用 if-else

在上面顯示的示例中,十個數字,即從 0 到 10 由列表推導檢查。

4. 使用嵌套循環

生成的輸出:[[1, 4], [2, 5], [3, 6], [4, 8]]

通過使用兩個循環來計算矩陣的轉置。

  • 與普通的嵌套循環相比,列表推導中包含的嵌套循環與其他嵌套循環的工作方式不同。

句法

python列表理解的基本語法

[列表中項目的表達式]

假設我們有一個字符串,我們想通過使用列表推導來迭代它。

在上面的例子中,可以注意到 'human' 被用作字符串而不是列表。 這就是python 列表推導的強大之處 無論是字符串還是元組,列表推導都可以識別它並像列表一樣對其進行處理。

使用循環可以執行相同的操作。 但是,循環不能遵循列表推導的語法。

結論

在本文中,您簡要了解了 python 中的列表推導及其以各種方式創建的內容。 有了這種理解的知識,可以為您的任務嘗試其他代碼。 python 的概念得到了很多關注,但如果你能夠有效地使用你的數據,它會更有價值。 這可以通過編寫清晰簡潔的代碼來實現。

因此,如果您願意了解python及其在數據挖掘中的實現,可以查看upGrad提供的數據科學Executive PG Program課程。 為期 12 個月的課程專為 21 至 45 歲的入門級專業人士(男性和女性)設計,是印度第一個 NASSCOM 認證的 PGP。 該課程擁有超過 400 多個小時的學習和 14 多種工具和語言的實踐經驗,專為實現您的夢想而設計。 與課程相關的查詢是最受歡迎的。

什麼時候首選 Python 列表來存儲數據?

Python列表被認為是在以下場景中存儲數據的最佳數據結構:
1. 列表可用於存儲具有不同數據類型的各種值,並且可以僅通過它們各自的索引來訪問。
2. 當您需要對元素進行數學運算時,可以使用列表,因為它允許您直接對元素進行數學運算。
3. 由於列表可以調整大小,當您不確定要存儲的元素數量時,可以使用它來存儲數據。
4. 列表元素很容易可變,它也可以存儲重複元素,不像集合和字典。

列表理解比循環有什麼優勢?

列表推導比循環提供了幾個顯著的優勢。 以下是列表推導的一些優點:
1. 列表推導比循環更快更緊湊,因為它首先收集所有元素並一次將它們全部插入。
2. 與循環在塊中所做的相同的事情可以使用列表推導式在單行中完成,使代碼更清晰,更用戶友好。
3. 將矩陣解析為向量和列表過濾是可以看出列表推導優於循環的一些最佳示例。

說明創建列表的不同方式?

可以通過下面提到的多種方式創建 Python 列表:
1. 使用 for 循環:for 循環是創建列表的最基本方式。 可以通過三種簡單的方式使用 for 循環創建列表:
一種。 創建一個空列表。
灣。 遍歷所有要插入的元素。
C。 使用 append() 函數附加列表中的每個元素。
2. 使用map(): Python 中的map() 函數可以交替用於創建列表。 該函數接受兩個參數:
一種。 Function : map 傳遞給每個可迭代對象的函數。
灣。 Iterable:要映射的元素或可迭代對象。
3. 使用列表推導:此方法是所有三種方法中最優化的。 雖然在上述方法中必須首先創建一個空列表,但列表推導式允許您使用單行將所有元素插入列表中。