赞
踩
Python中的推导式(Comprehension)是一种简洁的语法,用于快速生成列表、字典、集合和生成器等对象。常见的推导式包括列表推导式、字典推导式和生成器推导式。
1.列表推导式
列表推导式用于快速生成列表,通常使用一行代码即可完成。它的基本语法为:
[expression for item in iterable if condition]
其中,expression
是用于生成列表元素的表达式,item
是用于迭代的变量,iterable
是可迭代对象,condition
是可选的过滤条件。例如:
- # 生成一个包含1到10的平方的列表
- squares = [i ** 2 for i in range(1, 11)]
- print(squares) # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
-
- # 生成一个包含偶数的列表
- evens = [i for i in range(1, 11) if i % 2 == 0]
- print(evens) # 输出:[2, 4, 6, 8, 10]
2.字典推导式
字典推导式用于快速生成字典,也通常使用一行代码即可完成。它的基本语法为:
{key_expression: value_expression for item in iterable if condition}
其中,key_expression
是用于生成字典键的表达式,value_expression
是用于生成字典值的表达式,item
是用于迭代的变量,iterable
是可迭代对象,condition
是可选的过滤条件。例如:
- # 生成一个包含1到10的数字及其平方的字典
- squares_dict = {i: i ** 2 for i in range(1, 11)}
- print(squares_dict) # 输出:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}
-
- # 生成一个包含偶数的字典
- evens_dict = {i: i * 2 for i in range(1, 11) if i % 2 == 0}
- print(evens_dict) # 输出:{2: 4, 4: 8, 6: 12, 8: 16, 10: 20}
3.生成器推导式
生成器推导式也用于快速生成数据,但是它返回的是一个生成器对象,而不是列表或字典。它的基本语法与列表推导式类似,只需要将[]
换成()
即可。例如:
- # 生成一个包含1到10的平方的生成器对象
- squares_gen = (i ** 2 for i in range(1, 11))
- print(squares_gen)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。