python如何根据条件从旧数列里提取新的数列,请举例
时间: 2024-02-15 13:04:09 浏览: 15
在Python中,可以使用列表推导式或filter函数来根据条件从旧数列中提取新的数列。
举个例子,假设我们有一个包含学生信息的列表,其中包括学生姓名、性别、年龄、成绩等信息。如果我们想要从这个列表中提取出所有女生的信息,可以按照以下两种方式操作:
1. 列表推导式
```python
students = [
{'name': 'Tom', 'sex': 'male', 'age': 18, 'score': 90},
{'name': 'Lucy', 'sex': 'female', 'age': 19, 'score': 95},
{'name': 'Lily', 'sex': 'female', 'age': 20, 'score': 88},
{'name': 'Jack', 'sex': 'male', 'age': 19, 'score': 92},
{'name': 'Bob', 'sex': 'male', 'age': 20, 'score': 85}
]
female_students = [s for s in students if s['sex'] == 'female']
print(female_students)
```
输出结果为:
```
[{'name': 'Lucy', 'sex': 'female', 'age': 19, 'score': 95}, {'name': 'Lily', 'sex': 'female', 'age': 20, 'score': 88}]
```
2. filter函数
```python
students = [
{'name': 'Tom', 'sex': 'male', 'age': 18, 'score': 90},
{'name': 'Lucy', 'sex': 'female', 'age': 19, 'score': 95},
{'name': 'Lily', 'sex': 'female', 'age': 20, 'score': 88},
{'name': 'Jack', 'sex': 'male', 'age': 19, 'score': 92},
{'name': 'Bob', 'sex': 'male', 'age': 20, 'score': 85}
]
def is_female(student):
return student['sex'] == 'female'
female_students = filter(is_female, students)
print(list(female_students))
```
输出结果为:
```
[{'name': 'Lucy', 'sex': 'female', 'age': 19, 'score': 95}, {'name': 'Lily', 'sex': 'female', 'age': 20, 'score': 88}]
```
以上两种方法都可以根据条件从旧数列中提取新的数列,满足我们的筛选条件。