一、列表推導式
列表推導式是Python中最常見的推導式,它允許我們快速構建一個列表,而不必寫循環語句。
nums = [1, 2, 3, 4, 5]
squares = [num ** 2 for num in nums]
print(squares) # [1, 4, 9, 16, 25]
這段代碼使用列表推導式構建了一個包含數值1~5的整數列表,並使用循環語句求出每個數的平方。這種方法比使用循環語句構建列表更為簡潔。
除了基本語法,列表推導式還支持嵌套循環和條件篩選,如下所示:
words = ['hello', 'world', 'python', 'is', 'fun']
capitalized_words = [word.upper() for word in words if len(word) > 4]
print(capitalized_words) # ['WORLD', 'PYTHON']
這段代碼使用列表推導式篩選出長度大於4的單詞,並將它們轉換成大寫字母。
二、字典推導式
字典推導式類似於列表推導式,但是它用於創建字典。它的基本語法如下:
d = {key_expression: value_expression for expression in iterable}
通過字典推導式,我們可以快速創建一個字典。例如:
numbers = [1, 2, 3, 4, 5]
squares_dict = {num: num ** 2 for num in numbers}
print(squares_dict) # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
這段代碼使用字典推導式創建了一個由數字和它們的平方組成的字典。
三、集合推導式
集合推導式類似於列表推導式和字典推導式,但是它用於創建集合。它的基本語法如下:
s = {expression for expression in iterable}
集合推導式可以用於快速創建一個集合。例如:
numbers = [1, 2, 3, 4, 5, 1, 2, 3]
squares_set = {num ** 2 for num in numbers}
print(squares_set) # {1, 4, 9, 16, 25}
這段代碼使用集合推導式創建了一個由數字的平方組成的集合,注意,集合中只包含了唯一的元素。
四、生成器推導式
生成器是Python中一種非常重要的數據類型,它可以邊循環邊計算值,而不必等到所有的值都計算出來。
Python中的生成器推導式與列表推導式類似,但是它返回的是一個生成器對象。例如:
numbers = [1, 2, 3, 4, 5]
squares_generator = (num ** 2 for num in numbers)
print(squares_generator) # <generator object <genexpr> at 0x10c1cbeb8>
這段代碼使用生成器推導式創建了一個生成器對象,它可以用於逐個計算每個數字的平方。如果要取出生成器中的所有元素,可以將它轉換為列表或者使用for循環逐個取出元素。
print(list(squares_generator)) # [1, 4, 9, 16, 25]
注意:當將生成器轉換為列表時,生成器對象的全部元素都會被計算並存儲在列表中。
五、總結
推導式是Python中一種非常方便的語法,它允許我們使用簡潔的語法構建列表、字典、集合和生成器。使用推導式可以讓我們的代碼更加簡潔、清晰、高效。
原創文章,作者:IQGSZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/333863.html