Python 列表推导式(List Comprehension)是一种快速创建列表的方式。它允许您在一行代码中通过对序列中的每个元素执行操作来创建新的列表。例如,如果您想创建一个列表,其中包含 1 到 10 的平方,您可以使用列表推导式:
squares = [x**2 for x in range(1, 11)]
print(squares) # 输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
这个例子创建了一个叫做 squares 的列表,其中包含了 1 到 10 的平方。列表推导式中包含了一个表达式 x**2
,这个表达式用于计算每个元素的平方,然后这个表达式的结果被添加到新的列表中。
您可以使用列表推导式来执行复杂的操作,例如筛选列表中的元素,例如,如果您想创建一个列表,其中包含 1 到 10 中所有偶数的平方,您可以使用以下代码:
squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(squares) # 输出: [4, 16, 36, 64, 100]
在这个例子中,我们在列表推导式中使用了一个 if 语句,这个语句用于筛选出列表中的偶数。因此,列表推导式会计算出 1 到 10 中所有偶数的平方,然后将结果添加到新的列表中。
当然,除了创建列表以外,您还可以使用列表推导式来创建其他类型的序列,例如元组和字典。例如,如果您想创建一个字典,其中键是 1 到 10 的数字,值是这些数字的平方,您可以使用以下代码:
squares = {x: x**2 for x in range(1, 11)}
print(squares) # 输出: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}
在这个例子中,我们使用了一个字典推导式来创建字典。字典推导式与列表推导式的语法类似,只是使用了大括号而不是方括号。在这个例子中,我们为每个数字 x 创建了一个键值对,其中键是 x,值是 x 的平方。
除了上述例子中演示的用法以外,Python 列表推导式还可以用于解决更复杂的问题。例如,如果您想创建一个列表,其中包含 1 到 10 中所有质数的平方,您可以使用以下代码:
squares = [x**2 for x in range(1, 11) if is_prime(x)]
在这个例子中,我们使用了一个自定义函数 is_prime()
来判断一个数字是否是质数。如果这个数字是质数,那么它的平方会被添加到新的列表中。这样,我们就能够快速地创建一个列表,其中包含了 1 到 10 中所有质数的平方。
总之,Python 列表推导式(List Comprehension)是一种非常强大且灵活的工具,它能够解决许多不同类型的问题。它允许您在一行代码中快速创建新的列表、元组或字典,并能够提高您的代码的可读性和效率。