Python 中的列表推导式

摘要:列表推导式提供了一种创建列表的简洁方法。它由括号组成,其中包含一个表达式,后跟一个 for 子句,然后是零个或多个 for 子 if 句。表达式可以是任何内容,这意味着您可以在列表中放入各种对象。

列表推导式提供了一种创建列表的简洁方法。它由括号组成,其中包含一个表达式,后跟一个 for 子句,然后是零个或多个 for 子 if 句。表达式可以是任何内容,这意味着您可以在列表中放入各种对象。

简明扼要和可读性:它们允许您编写更简洁和可读的代码。效率:它们通常比使用多行代码来完成同一任务的计算效率更高。

列表推导是在 Python 中创建列表的简洁方法。它由括号组成,其中包含一个表达式,后跟一个 for 子句,然后是零个或多个 for 子 if 句。表达式可以是任何内容,这意味着您可以将各种对象放在列表中。结果将是一个新列表,该列表是在表达式后面的 for and if 子句的上下文中计算表达式后产生的。此方法可用于快速简洁地创建列表,通常使代码更易于阅读和理解。

[new_item for item in iterable if condition]new_item 是一个表达式,用于定义新列表中的每个项目应如何从原始可迭代对象中的项目构造。Iterable 是列表推导循环访问的元素的集合(例如,列表、元组、字符串)。条件(可选)是一个筛选器,仅当条件为 true 时才包含新列表中的项目。

任务:给定一个数字列表,您希望创建一个仅包含偶数平方的新列表。

numbers = [1, 2, 3, 4, 5]squared_evens = for number in numbers: if number % 2 == 0: squared_evens.append(number**2)print(squared_evens)#OUTPUT[4, 16]numbers = [1, 2, 3, 4, 5]squared_evens = [number**2 for number in numbers if number % 2 == 0]print(squared_evens)#OUTPUT[4, 16]

假设有一个数字列表,只想保留正数。列表推导式不是使用带有 if 语句的循环,而是使它变得简单明了:

# Original listnumbers = [1, -2, 3, -4, 5]# Using list comprehension to filter out negative numberspositive_numbers = [x for x in numbers if x >= 0]print(positive_numbers) #OUTPUT[1, 3, 5]

假设有一个字符串列表,并且希望将它们全部转换为大写。使用函数调用的列表推导简化了该过程:

# Original list of stringsfruits = ["apple", "banana", "cherry"]# Using list comprehension to make each word uppercaseuppercase_fruits = [fruit.upper for fruit in fruits]print(uppercase_fruits)# Output: ['APPLE', 'BANANA', 'CHERRY']-

如果正在处理一个矩阵或列表列表,则可以使用列表推导将它展平为单个列表:

# List of listsmatrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]# Flatten the list of listsflat = [num for row in matrix for num in row]print(flat) # Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]# List of numbersnumbers = [1, 2, 3, 4, 5, 6]# Using list comprehension with if-else to mark even and odd numbersmark_even_odd = ["Even" if x % 2 == 0 else "Odd" for x in numbers]print(mark_even_odd) # Output: ['Odd', 'Even', 'Odd', 'Even', 'Odd', 'Even']

来源:自由坦荡的湖泊AI一点号

相关推荐