列表推導式是在 Python 中建立清單的一種強大且高效的方法。
它們提供了一種簡潔易讀的方式來根據現有的可迭代物件產生清單。
在文章中,我將探討列表推導式的細微差別、它們相對於傳統循環的優勢以及各種實際應用。
列表推導式是一種語法緊密的方法,透過將迴圈和條件邏輯組合到一行程式碼中來建立清單。
這使得產生清單的方式更具可讀性和表現力,讓您更容易一目了然地理解程式碼的意圖。
列表理解的基本架構如下:
[expression for item in iterable if condition]
讓我們分解這個結構的組成:
基本清單理解:
numbers = [1, 2, 3, 4, 5] squares = [x**2 for x in numbers] print(squares) # Output: [1, 4, 9, 16, 25]
此範例使用清單理解從現有數字清單建立新的正方形清單。
有條件的列表理解:
numbers = [1, 2, 3, 4, 5] even_squares = [x**2 for x in numbers if x % 2 == 0] print(even_squares) # Output: [4, 16]
此範例過濾數字以僅包含偶數,然後將其平方,演示了列表理解中 if 條件的使用。
列表推導式比傳統循環有幾個優點:
列表推導式可以以多種方式使用來操作和處理資料。
以下是一些常見用例:
過濾列表:
words = ["apple", "banana", "cherry", "date"] short_words = [word for word in words if len(word) <= 5] print(short_words) # Output: ['apple', 'date']
此範例過濾單字列表,僅包含 5 個或更少字元的單字。
轉換清單:
temperatures_celsius = [0, 20, 30, 40] temperatures_fahrenheit = [(temp * 9/5) + 32 for temp in temperatures_celsius] print(temperatures_fahrenheit) # Output: [32.0, 68.0, 86.0, 104.0]
此範例將溫度清單從攝氏度轉換為華氏度。
巢狀列表推導式:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] flattened = [num for row in matrix for num in row] print(flattened) # Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]
此範例使用巢狀清單推導式將 2D 清單(矩陣)展平為 1D 清單。
建立元組清單:
pairs = [(x, y) for x in range(3) for y in range(3)] print(pairs) # Output: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
此範例產生來自兩個範圍的所有可能的數字對(元組)的清單。
刪除重複項:
list_with_duplicates = [1, 2, 2, 3, 4, 4, 5] unique_list = list(set([x for x in list_with_duplicates])) print(unique_list) # Output: [1, 2, 3, 4, 5]
此範例透過將清單轉換為集合並傳回清單來刪除清單中的重複項。
現在讓我們來探索一些有關列表理解變體的更高級主題。
生成器表達式
生成器表達式與列表推導式類似,但產生可迭代物件而不是列表。
在處理大型資料集時,這可以提高記憶體效率,因為專案是動態產生的,而不是一次性全部儲存在記憶體中。
numbers = [1, 2, 3, 4, 5] squares_generator = (x**2 for x in numbers) for square in squares_generator: print(square) # Output # 1 # 4 # 9 # 16 # 25
字典與集合推導式
Python 還支援字典和集合推導式,讓您以簡潔的方式建立字典和集合,類似於列表推導式。
# Dictionary comprehension numbers = [1, 2, 3, 4, 5] squares_dict = {x: x**2 for x in numbers} print(squares_dict) # Output: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25} # Set comprehension list_with_duplicates = [1, 2, 2, 3, 4, 4, 5] unique_set = {x for x in list_with_duplicates} print(unique_set) # Output: {1, 2, 3, 4, 5}
清單推導式是 Python 中一個強大且多功能的工具,可讓您以簡潔且可讀的方式建立清單。
它們可以簡化您的程式碼,提高效能,並使操作和處理資料變得更容易。
透過掌握清單推導式及其進階功能,您可以編寫更有效率、更簡潔的 Python 程式碼。
以上是理解 Python 中的列表推導式的詳細內容。更多資訊請關注PHP中文網其他相關文章!