首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字典列表创建字典

从字典列表创建字典
EN

Stack Overflow用户
提问于 2022-08-22 06:57:58
回答 1查看 22关注 0票数 1

我想从字典列表中创建一本新字典。

要求的产出是,请建议:

代码语言:javascript
复制
data2 = {'NUM': [ID], 'NUM': [ID]}
data2 = {'13': [16,4], '131': [12, 11], '132': [9,8]}

我尝试了Python代码如下:

代码语言:javascript
复制
data = [{'object': 'XXXX-TSS/RDID-1579/NBLO-723/NUM-13/ID-16'},
{'object': 'XXXX-TSS/RDID-1579/NBLO-723/NUM-131/ID-12'}, 
{'object': 'XXXX-TSS/RDID-1579/NBLO-723/NUM-132/ID-9'}, 
{'object':'XXXX-TSS/RDID-1579/NBLO-723/NUM-13/ID-4'}, 
{'object': 'XXXX-TSS/RDID-1579/NBLO-723/NUM-131/ID-11'}, 
{'object': 'XXXX-TSS/RDID-1579/NBLO-723/NUM-132/ID-8'}]
data2 = {}
for row in data:
    obj = row['object']
    num = obj.split('/')[3].split('-')[-1]
    _id = int(obj.split('-')[-1])
    if num not in data2:
        data2[data2] = _id

这给我的结果是:{'13': 16, '131': 12, '132': 9}

EN

回答 1

Stack Overflow用户

发布于 2022-08-22 11:50:22

您可以使用一个简单的regexp来获得请求的输出:

代码语言:javascript
复制
data = [
    {'object': 'XXXX-TSS/RDID-1579/NBLO-723/NUM-13/ID-16'},
    {'object': 'XXXX-TSS/RDID-1579/NBLO-723/NUM-131/ID-12'},
    {'object': 'XXXX-TSS/RDID-1579/NBLO-723/NUM-132/ID-9'},
    {'object': 'XXXX-TSS/RDID-1579/NBLO-723/NUM-13/ID-4'},
    {'object': 'XXXX-TSS/RDID-1579/NBLO-723/NUM-131/ID-11'},
    {'object': 'XXXX-TSS/RDID-1579/NBLO-723/NUM-132/ID-8'}
]

result = {}
pattern = re.compile(r'NUM-(\d+)/ID-(\d+)')
for adict in data:
    num, id = re.findall(pattern, adict['object'])[0]
    result.setdefault(num, []).append(int(id))

print(result)

输出:

代码语言:javascript
复制
{'13': [16, 4], '131': [12, 11], '132': [9, 8]}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73441227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档