Python推导式是一种简洁高效的代码编写方式,它允许你快速创建列表、集合、字典等复杂数据结构。以下是Python推导式的基本语法和示例:
列表推导式
列表推导式的基本语法是:
[expression for item in iterable if condition]
`expression` 是要生成的列表元素的表达式。
`item` 是迭代变量,代表可迭代对象中的每个元素。
`iterable` 是一个可迭代对象,如列表、元组、字符串、字典等。
`condition` 是可选的条件表达式,用于筛选符合条件的元素。
示例:
生成0到9每个数的平方,只包括偶数
squares = [x2 for x in range(10) if x % 2 == 0]
print(squares) 输出:[0, 4, 16, 36, 64]
字典推导式
字典推导式的基本语法是:
{key_expression: value_expression for item in iterable if condition}
`key_expression` 是字典键的表达式。
`value_expression` 是字典值的表达式。
`iterable` 是一个可迭代对象。
`condition` 是可选的条件表达式。
示例:
生成一个字典,键为1到10的平方,值为对应的平方数
squares_dict = {x: x2 for x 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}
集合推导式
集合推导式的基本语法是:
{expression for item in iterable if condition}
`expression` 是要生成的集合元素的表达式。
`item` 是迭代变量,代表可迭代对象中的每个元素。
`iterable` 是一个可迭代对象。
`condition` 是可选的条件表达式,用于筛选符合条件的元素。
示例:
生成1到10的平方,只包括偶数
even_squares = {x2 for x in range(1, 11) if x % 2 == 0}
print(even_squares) 输出:{0, 4, 16, 36, 64}
生成器推导式
生成器推导式的基本语法是:
(expression for item in iterable if condition)
`expression` 是要生成的生成器元素的表达式。
`item` 是迭代变量,代表可迭代对象中的每个元素。
`iterable` 是一个可迭代对象。
`condition` 是可选的条件表达式,用于筛选符合条件的元素。
示例:
生成0到9每个数的平方,只包括偶数
even_squares_gen = (x2 for x in range(10) if x % 2 == 0)
for square in even_squares_gen:
print(square) 输出:0 4 16 36 64
推导式是Python中一种非常有用的特性,可以大大简化代码,提高代码的可读性和执行效率