gpt4 book ai didi

python - 将属性等于的数组中的对象子数组分组 - Python

转载 作者:行者123 更新时间:2023-12-01 07:21:34 25 4
gpt4 key购买 nike

我有一个数组,如果键值对等于userID,我将尝试将对象的子数组分组在一起。

给我留下一个对象,每个 userID 以及该 userID 的所有子数组。

即使在搜索了SO之后,我似乎也不知道如何做到这一点。

如何对 userID 相同的子数组进行分组?(数据发生变化,所以我需要使用for循环)

感谢您的帮助。

数组看起来像这样:

      [  
{
'name':'James',
'lastname':'Bond',
'userID': 1001,
'subarray':[
{
'color':'blue',
'animal':'dog'
}
]
},
{
'name':'James',
'lastname':'Bond',
'userID': 1001,
'subarray':[
{
'color':'red',
'animal':'cat'
}
]
},
{
'name':'Billy',
'lastname':'King',
'userID': 1004,
'subarray':[
{
'color':'green',
'animal':'fish'
}
]
}
]

我想让数组像这样:

      [  
{
'name':'James',
'lastname':'Bond',
'userID': 1001,
'subarray':[
{
'color':'blue',
'animal':'dog'
},
{
'color':'red',
'animal':'cat'
}
]
},
{
'name':'Billy',
'lastname':'King',
'userID': 1004,
'subarray':[
{
'color':'green',
'animal':'fish'
}
]
}
]

最佳答案

使用简单的迭代。

例如:

result = {}
for item in data:
if item["userID"] not in result:
result[item["userID"]] = {'name':item["name"], 'lastname':item["lastname"],'userID': item["userID"],'subarray':[]}
result[item["userID"]]['subarray'].append(item["subarray"])

print(list(result.values()))

输出:

[{'lastname': 'Bond',
'name': 'James',
'subarray': [[{'animal': 'dog', 'color': 'blue'}],
[{'animal': 'cat', 'color': 'red'}]],
'userID': 1001},
{'lastname': 'King',
'name': 'Billy',
'subarray': [[{'animal': 'fish', 'color': 'green'}]],
'userID': 1004}]

关于python - 将属性等于的数组中的对象子数组分组 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57670245/

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