1. Python列表推导式
Python列表推导式是一种快速创建列表的方法,它使用一种类似于函数的语法来快速生成一个列表。在使用列表推导式时,您可以使用一个简单的for循环和一些条件判断来创建一个列表。
1.1 列表推导式的基本语法
列表推导式的基本语法如下所示:
[expression for item in iterable if condition]
在上面的语法中,expression 表示用于生成列表中每个元素的 Python 表达式。item 是一个迭代器,用于访问列表的每个元素。可迭代对象(iterable)是一个包含可以按顺序访问元素的对象。可选的条件(condition)将根据其判断结果过滤迭代器中的元素。
1.2 使用列表推导式生成列表
下面的代码展示了如何使用列表推导式生成一个由整数 1 到 10 的平方组成的列表。
squares = [x**2 for x in range(1, 11)]
print(squares)
上面的代码首先使用 range(1, 11) 生成一个从 1 到 10 的整数列表。然后通过 for 循环遍历该列表,并将每个元素的平方添加到最终的 squares 列表中。
1.3 使用列表推导式过滤元素
下面的代码展示了如何使用列表推导式过滤列表中的元素。
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [x for x in numbers if x % 2 == 0]
print(even_numbers)
上面的代码生成一个包含整数 1 到 6 的列表。然后使用列表推导式和条件语句过滤掉所有奇数,只留下偶数。
1.4 使用列表推导式嵌套生成多维列表
列表推导式还可以嵌套使用,以便生成多维列表。
matrix = [[x+y for x in range(3)] for y in range(3)]
print(matrix)
上面的代码使用两个嵌套的循环生成一个由 3 行 3 列的矩阵,每个元素是其对应行和列的和。
2. Python元组推导式
Python中没有元组推导式,因为元组是不可变序列,它们的内容和长度在创建后就不能更改。如果需要创建元组,可以使用简单的括号和逗号语法。
my_tuple = (1, 2, 3)
print(my_tuple)
上面的代码创建一个包含整数 1 到 3 的元组,并将其打印到控制台上。
3. Python字典推导式
Python字典推导式是一种快速创建字典的方法,它使用类似于列表推导式的语法来生成字典。字典推导式由一对大括号组成,包含一个键值对列表。
3.1 字典推导式的基本语法
字典推导式的基本语法如下所示:
{key_expression: value_expression for expression in iterable if condition}
在上面的语法中,key_expression 表示用于生成字典的键的 Python 表达式。value_expression 表示用于生成字典的值的 Python 表达式。可迭代对象(iterable)是一个包含可以按顺序访问元素的对象。可选的条件(condition)将根据其判断结果过滤迭代器中的元素。
3.2 使用字典推导式生成字典
下面的代码展示了如何使用字典推导式生成一个包含整数 1 到 5 的平方的字典。
squares = {x: x**2 for x in range(1, 6)}
print(squares)
上面的代码生成包含整数 1 到 5 的字典。然后使用字典推导式根据键和值的关系生成字典。
3.3 使用字典推导式过滤键值对
下面的代码展示了如何使用字典推导式过滤掉字典中的键值对。
my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
even_keys = {k: my_dict[k] for k in my_dict if k % 2 == 0}
print(even_keys)
上面的代码生成一个包含键值对的字典。然后使用字典推导式和条件语句过滤掉所有偶数键的值。
4. Python集合推导式
Python集合推导式是一种快速创建集合的方法,它使用类似于列表推导式和字典推导式的语法来生成集合。集合推导式由一对大括号组成,包含一个表达式和可选的条件。
4.1 集合推导式的基本语法
集合推导式的基本语法如下所示:
{expression for expression in iterable if condition}
在上面的语法中,expression 表示用于生成集合的 Python 表达式。可迭代对象(iterable)是一个包含可以按顺序访问元素的对象。可选的条件(condition)将根据其判断结果过滤迭代器中的元素。
4.2 使用集合推导式生成集合
下面的代码展示了如何使用集合推导式生成一个包含整数 1 到 10 的平方的集合。
squares = {x**2 for x in range(1, 11)}
print(squares)
上面的代码使用集合推导式生成包含整数 1 到 10 的平方的集合。
4.3 使用集合推导式过滤元素
下面的代码展示了如何使用集合推导式过滤集合中的元素。
numbers = {1, 2, 3, 4, 5, 6}
even_numbers = {x for x in numbers if x % 2 == 0}
print(even_numbers)
上面的代码生成包含整数 1 到 6 的集合。然后使用集合推导式和条件语句过滤掉所有奇数,只留下偶数。
以上就是Python中常用的四种推导式的介绍,通过Python的推导式可以更加方便快捷地生成列表、字典、集合等数据类型。