lambda表达式 排序前判空
时间: 2023-11-09 22:57:13 浏览: 116
lambda表达式在排序时可以通过判空来实现。在使用lambda表达式进行排序时,可以在lambda表达式中添加一个判空条件,以确保空值在排序中的位置。
例如,假设我们有一个包含多个字典的列表,每个字典表示一个人的信息,其中包含姓名和年龄。我们想要按照年龄对列表进行排序,但是有些人的年龄可能为空。我们可以使用lambda表达式来排序,并在lambda表达式中添加判空条件。
下面是一个示例:
```python
people = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': None},
{'name': 'Charlie', 'age': 30}
]
sorted_people = sorted(people, key=lambda x: x['age'] if x['age'] is not None else float('inf'))
print(sorted_people)
```
在这个示例中,我们使用lambda表达式 `x['age'] if x['age'] is not None else float('inf')` 来指定按照年龄进行排序。如果年龄不为空,则使用实际的年龄值进行比较;如果年龄为空,则将其视为无穷大 (`float('inf')`),确保空值在排序结果中的末尾。
输出结果为:
```
[{'name': 'Bob', 'age': None}, {'name': 'Alice', 'age': 25}, {'name': 'Charlie', 'age': 30}]
```
这样,我们就可以在排序时处理可能为空的值了。
阅读全文