首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从其他两本字典中创建一本具有相似之处的字典。

从其他两本字典中创建一本具有相似之处的字典。
EN

Stack Overflow用户
提问于 2020-06-15 20:25:43
回答 3查看 61关注 0票数 1

我有两本这样的字典:

代码语言:javascript
复制
dict1= {'MO': ['N-2', 'N-8', 'N-7', 'N-6', 'N-9'], 'MO2': ['N0-6'], 'MO3': ['N-2']}
dict2= {'N-2': ['NUMBER1'], 'N0-6': ['NUMBER16'], 'N-9': ['NUMBER33']

我想写一本这样的字典

代码语言:javascript
复制
dict3={'MO'['NUMBER1','NUMBER33'], 'MO2':['NUMBER16']}

因此,我开发了这段代码,但是当我添加这些值时,它就不起作用了。

代码语言:javascript
复制
for ki, vi in dict2.items():
    for key, value in (itertools.chain.from_iterable([itertools.product((k, ), v) for k, v in dict3.items()])):
        if (ki == v):
            print vi
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-06-15 20:33:38

一条单线。:D

代码语言:javascript
复制
{k: [y for x in xs if x in d2 for y in d2[x]] for k, xs in d1.items()}

我们循环遍历d1.

  • For中的每个键(k)和值(xs) --在xs中的每个项目x,如果d2包含y ... for y in d2[x].

,则通过d2找到路径,使用y ... for y in d2[x].将结果列表扁平

下面是另一种可能更容易理解的格式化方法:

代码语言:javascript
复制
{
    k: [
        y
        for x in xs if x in d2
        for y in d2[x]
    ]
    for k, xs in d1.items()
}
票数 1
EN

Stack Overflow用户

发布于 2020-06-15 20:33:14

您只需遍历其中一本字典:

代码语言:javascript
复制
dict1= {'MO': ['N-2', 'N-8', 'N-7', 'N-6', 'N-9'], 'MO2': ['N0-6'], 'MO3': ['N-2']}
dict2= {'N-2': ['NUMBER1'], 'N0-6': ['NUMBER16'], 'N-9': ['NUMBER33']}
dict3 = {}
for key, subkeys in dict1.items():
    for subkey in subkeys:
        dict3.setdefault(key, []).extend(dict2.get(subkey, []))
票数 1
EN

Stack Overflow用户

发布于 2020-06-15 20:32:15

试一试这个用不合格的

代码语言:javascript
复制
from collections import defaultdict
d =defaultdict(list)
for k in dict1.keys():
    for value in dict1[k]:
        temp = dict2.get(value)
        if temp:
            d[k].append(temp)

输出

代码语言:javascript
复制
defaultdict(list,
            {'MO': [['NUMBER1'], ['NUMBER33']],
             'MO2': [['NUMBER16']],
             'MO3': [['NUMBER1']]})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62396408

复制
相关文章

相似问题

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