Python列表推导式,元组推导式,字典推导式,集合推导式

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的推导式可以更加方便快捷地生成列表、字典、集合等数据类型。

后端开发标签