list lamda 多个字段筛选
时间: 2023-07-20 07:41:45 浏览: 97
可以使用 lambda 表达式和 filter() 函数来实现多个字段的筛选。
假设有一个包含字典元素的列表,每个字典元素都有多个字段,例如:
```
data = [
{'name': 'Alice', 'age': 25, 'gender': 'female'},
{'name': 'Bob', 'age': 30, 'gender': 'male'},
{'name': 'Charlie', 'age': 35, 'gender': 'male'},
{'name': 'David', 'age': 40, 'gender': 'male'},
{'name': 'Eve', 'age': 45, 'gender': 'female'}
]
```
要筛选出所有 `age` 大于 30 且 `gender` 为 male 的字典元素,可以使用以下代码:
```
result = filter(lambda x: x['age'] > 30 and x['gender'] == 'male', data)
```
这将返回一个迭代器对象,包含符合条件的字典元素。如果需要将迭代器转换为列表,可以使用 `list()` 函数:
```
result_list = list(result)
```
此时 `result_list` 将包含两个字典元素:
```
[
{'name': 'Charlie', 'age': 35, 'gender': 'male'},
{'name': 'David', 'age': 40, 'gender': 'male'}
]
```
阅读全文