Python之列表推导式最全汇总(中篇)

  • Post category:Python

Python之列表推导式最全汇总(中篇)

列表推导式是Python中一种非常强大的语法,它可以用于快速生成列表。本文将详细介绍Python中的列表推导式,包括基本语法、条件语句、嵌套循环、字推导式和集合推导式,并提供两个示例。

基本语法

列表推导式的基本语法如下:

[expression for item in iterable]

其中,expression是一个表达式,item是可迭代对象中的每个元素,iterable是一个可迭代对象,例如列表、元组或字符串。

以下是一个简单的示例,它使用列表推导式生成一个包含1到10的整数的列表:

lst = [i for i in range(1, 11)]
print(lst)

输出结果为:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

条件语句

列表推导式还可以包含语句,用于过滤可迭代对象中的元素。条件语句的语法如下:

[expression for item in iterable if condition]

其中,condition是一个布尔表达式,用于过滤可迭代对象中的元素。

以下是一个示例,它使用列表推导式生成一个包含1到10的奇数的列表:

lst = [i for i range(1, 11) if i % 2 == 1]
print(lst)

输出结果为:

[1, 3, 5, 7, 9]

嵌套循环

列表推导式还可以包含嵌套循环,用于生成多维列表。嵌套循环的语法如下:

[expression for item1 in iterable1 for item2 in iterable2 ... for itemN in iterableN]

其中,iterable1iterableN是多个可迭代对象,用于生成多维列表。

以下是一个示例,它列表推导式生成一个包含1到9的乘法表:

lst = [i * j for i in range(, 10) for j in range(1, 10)]
print(lst)

输出结果为:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 4, 6, , 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6 12, 18, 24, 30, 36, 42, 48, 54,7, 14, 21, 28, , 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]

字典推导式

除了列表推导式,Python支持字典推导式,它可以用于快速生成字典。字典推导式的语法如下:

{key_expression:_expression for item in iterable}

其中,key_expressionvalue_expression是表达式,用于生成字典的键和值,item是可迭代对象中的每个元素,iterable`是一个可迭代对象。

以下是一个示例,它使用字典推导式生成一个包含1到10的整数的字典:

dct = {i: i**2 for i in range(1, 11)}
print(dct)

输出结果为:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}

集合推导式

除了列表推导式和字典推导式,Python还支持集合推导式,它可以用于快速生成集合。集合推导式的语法如下:

“`python{expression for item in iterable}


其中,`expression`是一个表达式,用于生成集合中的元素,`item`是可迭代对象中的每个元素,`iterable`是一个可迭代对象。

以下是一个示例,它使用集合推导式生成一个包含1到10的整数的集合:

```python
st = {i for i in range(1, 11)}
print(st)

输出结果为:

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

示例一:使用列表推导式生成斐波那契数列

要使用列表推导式生成斐波那契数列,可以使用以下步骤:

  1. 定义斐波那契数列的前两个元素
a, b = 0, 1
  1. 使用列表推导式生成斐波那契数列
fib = [a := b, (b := a + b)][0] for _ in range(10)]
  1. 显示结果
print(fib)

上面的代码使用了一个列表推导式,生成了含前10个斐波那契数的列表。:=是Python 3.8中的海象运算符,用于在表达式中赋值。

示例二:使用列表推导式过滤列表中的元素

要使用列表推导式过滤列表中元素,可以使用以下步骤:

  1. 定义一个包含多个元素的列表“`python
    lst = [1, 2, 3,4, 5, 6, 7, 8, 9, 10]

2. 使用列表推导式过滤列表中的元素

```python
new_lst = [i for i in lst if i % 2 == 0]
  1. 显示结果

``python
print(new_lst)

上面的代码使用了一个列表推导式,过滤了列表中的奇数元,生成了一个新的列表。

总结

本文介绍了Python中的列表推导式,包括基本语法、条件语句、嵌套循环、字典推导式和集合推导式,并提供了两个示例。在使用列表推导式时,需要注意语法和表达式的正确性,以及可迭代对象的类型和元素的类型。列表推导式是Python中一种非常强大的语法,可以用于快速生成列表、字典和集合,以及过滤可迭代对象中的元素。