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]
其中,iterable1
到iterableN
是多个可迭代对象,用于生成多维列表。
以下是一个示例,它列表推导式生成一个包含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_expression
和value_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}
示例一:使用列表推导式生成斐波那契数列
要使用列表推导式生成斐波那契数列,可以使用以下步骤:
- 定义斐波那契数列的前两个元素
a, b = 0, 1
- 使用列表推导式生成斐波那契数列
fib = [a := b, (b := a + b)][0] for _ in range(10)]
- 显示结果
print(fib)
上面的代码使用了一个列表推导式,生成了含前10个斐波那契数的列表。:=
是Python 3.8中的海象运算符,用于在表达式中赋值。
示例二:使用列表推导式过滤列表中的元素
要使用列表推导式过滤列表中元素,可以使用以下步骤:
- 定义一个包含多个元素的列表“`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]
- 显示结果
``python
print(new_lst)
上面的代码使用了一个列表推导式,过滤了列表中的奇数元,生成了一个新的列表。
总结
本文介绍了Python中的列表推导式,包括基本语法、条件语句、嵌套循环、字典推导式和集合推导式,并提供了两个示例。在使用列表推导式时,需要注意语法和表达式的正确性,以及可迭代对象的类型和元素的类型。列表推导式是Python中一种非常强大的语法,可以用于快速生成列表、字典和集合,以及过滤可迭代对象中的元素。