python 对象数组,根据指定字段条件过滤数据,并排序升序

发布时间 2023-09-05 17:38:51作者: 小小菜鸟04

在 Python 中,你可以使用 `filter()` 函数和 `sorted()` 函数来根据指定字段的条件过滤并排序对象数组。

以下是示例代码,演示如何根据指定字段条件过滤并按升序排序对象数组:

```python
obj_arr = [
{'id': 1, 'name': 'John'},
{'id': 2, 'name': 'Jane'},
{'id': 3, 'name': 'John'},
{'id': 4, 'name': 'Alex'},
{'id': 5, 'name': 'Jane'}
]

# 根据 name 字段为 "John" 进行过滤并按 id 字段升序排序
filtered_objs = filter(lambda obj: obj['name'] == 'John', obj_arr)
sorted_objs = sorted(filtered_objs, key=lambda obj: obj['id'])
print(sorted_objs)
# 输出: [{'id': 1, 'name': 'John'}, {'id': 3, 'name': 'John'}]
```

在这个示例中,我们首先使用 `filter()` 函数针对指定字段进行过滤,然后使用 `sorted()` 函数按照另一个字段进行升序排序。你可以根据你的具体需求修改过滤条件和排序字段。

请注意,`filter()` 函数返回的结果是一个迭代器对象,需要通过 `list()` 函数将其转换为列表,以方便打印输出或进一步操作。

希望这个示例能够帮助到你。如果有任何问题,请随时提问。