python推导式
时间: 2023-06-22 11:20:34 浏览: 71
Python 推导式是一种简洁、高效的语法结构,用于创建新的数据结构。Python 支持列表、字典、集合和生成器推导式。
1. 列表推导式
列表推导式是一种用于从一个列表中生成另一个列表的简洁方法。语法如下:
```
new_list = [expression for variable in iterable if condition]
```
其中,expression 是一个表达式,variable 是一个变量,iterable 是一个可迭代对象,condition 是一个可选的条件表达式。
例如,将一个列表中的所有元素加倍并返回一个新的列表:
```
old_list = [1, 2, 3, 4, 5]
new_list = [x * 2 for x in old_list]
print(new_list) # [2, 4, 6, 8, 10]
```
2. 字典推导式
字典推导式是一种用于从一个可迭代对象中生成一个字典的简洁方法。语法如下:
```
new_dict = {key_expression: value_expression for variable in iterable if condition}
```
其中,key_expression 和 value_expression 是表达式,variable 是一个变量,iterable 是一个可迭代对象,condition 是一个可选的条件表达式。
例如,将一个列表中的元素作为字典的键,其平方作为值并返回一个新的字典:
```
old_list = [1, 2, 3, 4, 5]
new_dict = {x: x ** 2 for x in old_list}
print(new_dict) # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
```
3. 集合推导式
集合推导式是一种用于从一个可迭代对象中生成一个集合的简洁方法。语法如下:
```
new_set = {expression for variable in iterable if condition}
```
其中,expression 是一个表达式,variable 是一个变量,iterable 是一个可迭代对象,condition 是一个可选的条件表达式。
例如,将一个列表中的元素的平方作为集合的元素并返回一个新的集合:
```
old_list = [1, 2, 3, 4, 5]
new_set = {x ** 2 for x in old_list}
print(new_set) # {1, 4, 9, 16, 25}
```
4. 生成器推导式
生成器推导式是一种用于从一个可迭代对象中生成一个生成器的简洁方法。语法如下:
```
new_generator = (expression for variable in iterable if condition)
```
其中,expression 是一个表达式,variable 是一个变量,iterable 是一个可迭代对象,condition 是一个可选的条件表达式。
例如,将一个列表中的元素的平方作为生成器的元素并返回一个新的生成器:
```
old_list = [1, 2, 3, 4, 5]
new_generator = (x ** 2 for x in old_list)
print(type(new_generator)) # <class 'generator'>
```