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

在 Python 中,你可以使用列表推导式或内置的 `filter()` 函数来根据指定字段的条件对对象数组进行过滤。

以下是使用列表推导式的示例,可以按照指定字段的条件对对象数组进行过滤:

```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" 进行过滤
filtered_objs = [obj for obj in obj_arr if obj['name'] == 'John']
print(filtered_objs)
# 输出: [{'id': 1, 'name': 'John'}, {'id': 3, 'name': 'John'}]
```

你还可以使用 `filter()` 函数进行过滤。这个函数接受一个函数和一个可迭代对象作为参数,函数用于判断每个元素是否满足条件。

以下是使用 `filter()` 函数的示例,按照指定字段的条件对对象数组进行过滤:

```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" 进行过滤
filtered_objs = list(filter(lambda obj: obj['name'] == 'John', obj_arr))
print(filtered_objs)
# 输出: [{'id': 1, 'name': 'John'}, {'id': 3, 'name': 'John'}]
```

以上两种方法都可以根据指定字段的条件对对象数组进行过滤。根据你的需求选择合适的方法。

posted @ 2023-09-05 17:30  小小菜鸟04  阅读(760)  评论(0)    收藏  举报