gpt4 book ai didi

python - 如何根据属性值将数组拆分为另一个数组?

转载 作者:行者123 更新时间:2023-12-04 09:33:00 26 4
gpt4 key购买 nike

我有一个包含多种类型的 dict 的数组,例如:

arr = [
{'type': 'employee.update', ...},
{'type': 'job.started', ...},
{'type': 'meeting.xpto', ...}
...
]
如何按类型前缀拆分“主”数组?是否有必要为每个前缀遍历整个数组?
employess_actions = list(filter(lambda x: x['type'].startswith('employee.'), arr))
job_actions = list(filter(lambda x: x['type'].startswith('job.'), arr))
meeting_actions = list(filter(lambda x: x['type'].startswith('meeting.'), arr))
有没有任何表演方式来实现它?或者pythonic方式。

最佳答案

您可以使用(默认)dict 通过前缀收集元素:

from collections import defaultdict
result = defaultdict(list)
for o in arr:
result[o["type"][:o["type"].index(".")]].append(o)
这当然假设所有这些类型都有一个“。”在他们之中。
例如,如果:
arr = [
{"type": "employee.update"},
{"type": "job.started"},
{"type": "meeting.xpto"},
{"type": "job.ended"}
]
那么结果 result
{
"employee": [{"type": "employee.update"}],
"job": [{"type": "job.started"}, {"type": "job.ended"}],
"meeting": [{"type": "meeting.xpto"}]
}

关于python - 如何根据属性值将数组拆分为另一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62742026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com