成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一文掌握 Python 列表推導式中的嵌套邏輯

開發
本文介紹了 Python 列表推導式中的嵌套邏輯,從基本的列表推導式到單層條件過濾,再到嵌套循環和多層嵌套,最后通過一個實戰案例展示了如何生成指定范圍內的素數列表。

列表推導式是 Python 中一個非常強大的工具,可以讓你以簡潔的方式創建列表。當你掌握了基本的列表推導式后,下一步就是學習如何在列表推導式中使用嵌套邏輯。本文將逐步引導你從簡單的嵌套邏輯到更復雜的多層嵌套,幫助你全面掌握這一技能。

1. 基本的列表推導式

首先,我們回顧一下基本的列表推導式。假設我們要創建一個包含 0 到 9 的平方的列表:

squares = [x**2 for x in range(10)]
print(squares)
# 輸出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

這段代碼中,[x**2 for x in range(10)] 就是一個列表推導式,它遍歷 range(10) 中的每個元素 x,并計算 x**2,最終生成一個列表。

2. 單層條件過濾

在列表推導式中加入條件過濾可以讓我們更靈活地控制生成的列表。例如,我們只保留平方數中偶數的部分:

even_squares = [x**2 for x in range(10) if x**2 % 2 == 0]
print(even_squares)
# 輸出: [0, 4, 16, 36, 64]

這里,if x**2 % 2 == 0 是一個條件過濾,只有當 x**2 是偶數時,才會將其添加到列表中。

3. 嵌套循環

接下來,我們來看看如何在列表推導式中使用嵌套循環。假設我們有兩個列表 a 和 b,我們想創建一個新的列表,包含所有可能的 (x, y) 組合:

a = [1, 2, 3]
b = ['a', 'b', 'c']
combinations = [(x, y) for x in a for y in b]
print(combinations)
# 輸出: [(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]

這里的 [(x, y) for x in a for y in b] 表示先遍歷 a 中的每個元素 x,然后對于每個 x,再遍歷 b 中的每個元素 y,生成 (x, y) 對。

4. 嵌套條件過濾

在嵌套循環中,我們也可以加入條件過濾。假設我們只想保留 x 和 y 之和為奇數的組合:

a = [1, 2, 3]
b = ['a', 'b', 'c']
filtered_combinations = [(x, y) for x in a for y in b if (x + ord(y)) % 2 != 0]
print(filtered_combinations)
# 輸出: [(1, 'a'), (1, 'c'), (2, 'b'), (3, 'a'), (3, 'c')]

這里,if (x + ord(y)) % 2 != 0 是一個條件過濾,只有當 x 和 y 的 ASCII 值之和為奇數時,才會將其添加到列表中。

5. 多層嵌套

在某些情況下,我們可能需要更深層次的嵌套。假設我們有一個二維列表,我們想將其展平成一維列表:

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [num for row in matrix for num in row]
print(flattened)
# 輸出: [1, 2, 3, 4, 5, 6, 7, 8, 9]

這里的 [num for row in matrix for num in row] 表示先遍歷 matrix 中的每一行 row,然后對于每一行 row,再遍歷其中的每個元素 num,生成一維列表。

6. 嵌套列表推導式

有時候,我們需要在列表推導式中嵌套另一個列表推導式。假設我們有一個列表,每個元素都是一個列表,我們想創建一個新的列表,每個元素是原列表中對應位置的最大值:

lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
max_values = [max(row) for row in lists]
print(max_values)
# 輸出: [3, 6, 9]

這里的 [max(row) for row in lists] 表示遍歷 lists 中的每一行 row,并計算每行的最大值,生成新的列表。

7. 實戰案例:生成素數列表

最后,我們來看一個實際的案例:生成一個指定范圍內的所有素數。素數是指只能被 1 和自身整除的自然數。

def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True

primes = [x for x in range(2, 50) if is_prime(x)]
print(primes)
# 輸出: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]

這里,is_prime 函數用于判斷一個數是否為素數,[x for x in range(2, 50) if is_prime(x)] 表示遍歷 2 到 49 之間的每個數 x,如果 x 是素數,則將其添加到列表中。

總結

本文介紹了 Python 列表推導式中的嵌套邏輯,從基本的列表推導式到單層條件過濾,再到嵌套循環和多層嵌套,最后通過一個實戰案例展示了如何生成指定范圍內的素數列表。

責任編輯:趙寧寧 來源: 手把手PythonAI編程
相關推薦

2024-12-17 17:20:00

Python列表

2024-06-28 09:52:47

列表Python

2024-11-19 09:00:00

Pythondatetime模塊

2025-01-03 08:48:20

列表推導式Python編程

2022-12-20 07:39:46

2023-12-21 17:11:21

Containerd管理工具命令行

2022-10-21 17:24:34

契約測試定位

2024-06-21 15:19:40

2017-11-28 15:20:27

Python語言編程

2021-05-12 18:22:36

Linux 內存管理

2021-03-02 09:35:33

Python循環開發

2024-07-09 08:11:56

2024-12-06 07:00:00

Python列表索引

2025-04-18 05:50:59

Spring接口Aware

2024-11-28 07:00:00

Python列表推導式集合推導式

2023-10-24 11:44:21

2025-05-21 09:32:28

2020-10-09 07:56:52

Linux

2023-12-15 09:45:21

阻塞接口

2023-10-04 00:02:00

本文將從入門到精通,冒泡排序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 奇米久久久 | 日韩中文一区二区三区 | 久久99精品久久久97夜夜嗨 | 国产一区二区精品在线观看 | 久久婷婷香蕉热狠狠综合 | 日韩一二三区视频 | 国产伦精品一区二区三区照片91 | 国产一区在线免费 | 久久er精品 | 国产午夜精品久久久 | 精品久久久久久久久久久下田 | 亚洲一区国产精品 | 日韩一级 | 中文字幕成人在线 | 久久免费高清 | 国产精品国产成人国产三级 | 97av视频在线 | 一二三区视频 | 亚洲丝袜天堂 | 日本免费一区二区三区 | 日韩三级一区 | 日韩久久久久久 | 欧美日韩中文字幕在线 | 日本二区| 亚洲一区二区三区视频 | 国产精品一区二 | 精品真实国产乱文在线 | 欧美日韩一区二区三区四区五区 | 一区二区国产在线 | 在线看av的网址 | 久久99这里只有精品 | 日韩久久久久久 | 亚洲看片网站 | 韩日一区二区 | 国产精品视频久久久 | 国产精品99久久久久久www | 欧美一区成人 | 日韩一区二区三区四区五区六区 | 成人在线精品视频 | 久久91精品 | 日韩免费福利视频 |