gpt4 book ai didi

python - 如何从字典中提取组数?

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

我需要获取具有相同“id”和“name”的组的数量

输入:

myd = {
"Items": [
{
"id": 1,
"name": "ABC",
"value": 666
},
{
"id": 1,
"name": "ABC",
"value": 89
},
{
"id": 2,
"name": "DEF",
"value": 111
},
{
"id": 3,
"name": "GHI",
"value": 111
}
]
}

预期输出:

The count of {'id':1, 'name': 'ABC' } is 2
The count of {'id':2, 'name': 'DEF' } is 1
The count of {'id':3, 'name': 'GHI' } is 1

对于总长度,我们可以通过 len(myd) 获得单个键的 len(myd['id'])

如何获取idname组合的计数

最佳答案

您可以使用collections.OrderedDict并将 'id''name' 设置为元组键。这样,OrderedDict 会自动按顺序将具有相同 'id''name' 值的字典分组:

myd = {'Items': [
{'id':1, 'name': 'ABC', 'value': 666},
{'id':1, 'name': 'ABC', 'value': 89},
{'id':2, 'name': 'DEF', 'value': 111 },
{'id':3, 'name': 'GHI', 'value': 111 }]
}

from collections import OrderedDict

od = OrderedDict()
for d in myd['Items']:
od.setdefault((d['id'], d['name']), set()).add(d['value'])

for ks, v in od.items():
print("The count of {{'id': {}, 'name': {}}} is {}".format(ks[0], ks[1], len(v)))

输出:

The count of {'id': 1, 'name': ABC} is 2
The count of {'id': 2, 'name': DEF} is 1
The count of {'id': 3, 'name': GHI} is 1

关于python - 如何从字典中提取组数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68198283/

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