<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Python 列表推導式 > 原文: [http://zetcode.com/articles/pythonlistcomprehensions/](http://zetcode.com/articles/pythonlistcomprehensions/) 在本教程中,我們將學習使用 Python 列表推導。 ## Python 列表推導式 列表推導式是一種基于現有列表創建列表的語法結構。 列表推導式為創建列表提供了一種簡潔的方法。 常見的要求是創建新列表,其中每個元素是應用于另一序列的每個成員或可迭代的某些操作的結果,或者創建滿足特定條件的那些元素的子序列。 ## Python 列表推導式用法 列表推導可用于: * 轉換列表 * 過濾列表 列表推導式的語法受集合的數學符號的影響。 Python 語法受 Haskell 編程語言啟發。 ```py S = {x2 : x in {0 ... 16}} ``` 這是用于創建一組整數值的數學符號。 ```py L = [expression for variable in sequence [if condition]] ``` 上面的偽代碼顯示了列表推導式的語法。 它由三部分組成:`for`循環,可選條件和表達式。 `for`循環遍歷整個序列。 對于每個循環,如果滿足條件,則對表達式進行求值。 如果計算出該值,它將被添加到新列表中。 `for`循環和`if`條件可以有多個。 ## Python 列表推導式轉換列表 下面的示例借助列表推導式將一個列表轉換為另一個列表。 `multiply_elements.py` ```py #!/usr/bin/python3 a = [1, 2, 3, 4, 5, 6] b = [e * 2 for e in a] print(b) ``` 在第一個示例中,我們通過將每個元素乘以 2 從現有列表中創建一個新列表。 ```py b = [e * 2 for e in a] ``` 將`a`列表中的每個元素乘以 2,并將結果添加到新的`b`列表中。 ```py $ ./multiply_elements.py [2, 4, 6, 8, 10, 12] ``` 每個元素都乘以 2。 ## 從攝氏計算華氏溫度 我們有攝氏溫度的列表。 我們要創建一個新的溫度表,以華氏溫度表示。 `fahrenheit_celsius.py` ```py #!/usr/bin/python3 celsius = [22, 28, 33, 42, 52] fahr = [e * 9/5 + 32 for e in celsius] print(fahr) ``` 該示例創建了一個新的華氏溫度列表,該列表是根據攝氏溫度列表計算得出的。 ```py fahr = [e * 9/5 + 32 for e in celsius] ``` 計算是在 Python 列表推導的第三個表達式部分中完成的。 ```py $ ./fahrenheit_celsius.py [71.6, 82.4, 91.4, 107.6, 125.6] ``` 這是示例的輸出。 ## Python 列表推導式過濾列表 在下面的示例中,我們將使用列表推導式來過濾列表。 `filter_positive.py` ```py #!/usr/bin/python3 a = [-4, 2, 0, -1, 12, -3] b = [e for e in a if e > 0] print(b) ``` 我們有一個整數列表。 我們創建一個僅包含正整數的新列表。 ```py b = [e for e in a if e > 0] ``` 為了只包含正數,我們使用了`if`條件,該條件應用于每個元素。 僅當滿足條件的元素才包含在新列表中。 ```py $ ./filter_positive.py [2, 12] ``` 這是示例的輸出。 下一個示例按元素類型過濾元素。 `filter_by_type.py` ```py #!/usr/bin/python3 a = ['a', 2, 'c', 12, 3, 'd'] b = [e for e in a if type(e) == int] c = [e for e in a if type(e) == str] print(b) print(c) ``` 我們有一個元素列表,它們是整數和字符串。 我們創建兩個新列表; 一個只有整數,只有一個字符串。 ```py b = [e for e in a if type(e) == int] ``` 在這里,我們創建一個列表`b`,它將僅包含整數值。 `type()`函數用于確定元素的類型。 ```py $ ./filter_by_type.py [2, 12, 3] ['a', 'c', 'd'] ``` 這是示例的輸出。 ## Python 列表推導式多個`if`條件 Python 列表推導中的條件可以使用多個。 `multiple_conditions.py` ```py #!/usr/bin/python3 a = [9, 2, 18, 14, 22, 11, 7, 19, 23] b = [e for e in a if e > 10 if e < 20] print(b) ``` 我們從列表`a`創建一個新的整數列表,它們大于 10 且小于 20。 ```py b = [e for e in a if e > 10 if e < 20] ``` 在此列表推導式中,我們使用兩個`if`條件。 ```py $ ./multiple_conditions.py [18, 14, 11, 19] ``` 這是示例的輸出。 ## Python 列表推導式多個`for`循環 Python 列表推導中可能有多個`for`循環。 `multiple_for_loops.py` ```py #!/usr/bin/python3 a = [1, 2, 3] b = ['A', 'B', 'C'] c = [ str(i) + j for i in a for j in b] print(c) ``` 該示例創建兩個列表的笛卡爾乘積。 ```py c = [ str(i) + j for i in a for j in b] ``` 兩個`for`循環用于創建笛卡爾乘積。 ```py $ ./multiple_for_loops.py ['1A', '1B', '1C', '2A', '2B', '2C', '3A', '3B', '3C'] ``` 這是示例的輸出。 下一個示例顯示如何展平 Python 列表。 `flatten_list.py` ```py #!/usr/bin/python3 nums = [[1, 2, 3], [3, 4, 5], [6, 7, 8]] c = [ e for num in nums for e in num] print(c) ``` `nums`列表是嵌套列表的列表。 我們用列表推導式來使列表扁平化。 ```py c = [ e for num in nums for e in num] ``` 第一個循環遍歷外部列表。 第二個`for`循環遍歷嵌套列表。 ```py $ ./flatten_list.py [1, 2, 3, 3, 4, 5, 6, 7, 8] ``` 這是示例的輸出。 ## Python 嵌套列表推導式 Python 列表推導式中的初始表達式可以是另一個列表推導式。 `nested_list_comprehension.py` ```py #!/usr/bin/python3 M1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] M1_tr = [[row[i] for row in M1] for i in range(3)] print(M1_tr) ``` 該示例定義一個矩陣,列表推導從原始矩陣創建一個轉置矩陣。 ```py $ ./nested_list_comprehension.py [[1, 4, 7], [2, 5, 8], [3, 6, 9]] ``` 這是示例的輸出。 ## Eratosthenes 篩 Eratosthenes 的篩子是一種古老的計算素數的算法。 質數(或素數)是大于 1 的自然數,除 1 及其本身外沒有除數。 該算法將每個素數的倍數從 2 的倍數開始迭代標記為復合(即不是素數)。 `sieve_of_eratosthenes.py` ```py #!/usr/bin/python3 no_primes = [j for i in range(2, 8) for j in range(i*2, 100, i)] primes = [e for e in range(2, 100) if e not in no_primes] print (primes) ``` 該示例計算的質數最大為 100。 ```py no_primes = [j for i in range(2, 8) for j in range(i*2, 100, i)] ``` 首先,我們創建一個不是素數的數字列表。 ```py primes = [e for e in range(2, 100) if e not in no_primes] ``` 質數就是這些沒有包含在`no_primes`列表中的數字。 ```py $ ./sieve_of_eratosthenes.py [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] ``` 這是輸出。 在本教程中,我們介紹了 Python 列表推導。 您可能還會對以下相關教程感興趣: [Python 教程](/lang/python/), [Python lambda 函數](/python/lambda/), [OpenPyXL 教程](/articles/openpyxl/), [Python SimpleJson 教程](/python/simplejson/),[ [Python CSV 教程](/python/csv/)和 [Python Requests 教程](/web/pythonrequests/)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看