list filter过滤多个条件
时间: 2023-09-22 17:02:33 浏览: 85
list filter是Python内置函数,用于过滤一个列表中的元素。它可以接受多个条件作为参数进行过滤。
通过list filter,我们可以根据多个条件来筛选出符合要求的元素。
例如,假设我们有一个存储学生信息的列表students,其中每个元素表示一个学生的字典,包含学生的姓名、年龄和性别等信息。
我们希望筛选出年龄小于18岁且性别为女性的学生。我们可以使用list filter来实现这个筛选条件。
首先,我们需要定义一个函数来判断学生是否符合筛选条件。可以命名为is_female_and_underage,该函数接收一个学生字典作为参数。
接下来,我们使用list filter来过滤students列表中的元素,使用is_female_and_underage函数作为过滤条件。
最后,list filter会返回一个新的列表,其中只包含符合条件的学生。
示例代码如下:
```
def is_female_and_underage(student):
if student['gender'] == 'female' and student['age'] < 18:
return True
else:
return False
students = [
{'name': 'Alice', 'age': 16, 'gender': 'female'},
{'name': 'Bob', 'age': 20, 'gender': 'male'},
{'name': 'Cindy', 'age': 17, 'gender': 'female'},
{'name': 'David', 'age': 19, 'gender': 'male'}
]
filtered_students = list(filter(is_female_and_underage, students))
print(filtered_students)
```
以上代码会输出筛选出的学生信息列表:
```
[
{'name': 'Alice', 'age': 16, 'gender': 'female'},
{'name': 'Cindy', 'age': 17, 'gender': 'female'}
]
```
这样,我们就通过list filter成功地筛选出了年龄小于18岁且性别为女性的学生。可见,list filter允许我们使用多个条件进行过滤,从而更灵活地管理和处理列表中的元素。