如何更新字典,使键“a”的值为“c”,而不是键“c”附加值“a”?

2024-04-16 15:11:44 发布

您现在位置:Python中文网/ 问答频道 /正文

如果键'a'的值为'c',则'c'的键应附加'a'。请注意,与键'a'关联的值不包括在append中。你知道吗

我似乎不知道如何在一本大字典上自动执行这个过程。你知道吗

mydict = {
'a': ['z', 'c'],
'b': ['y', 'c'],
'c': ['q', 'r']
}

以下是我想要的结果:

mydict = {
'a': ['z', 'c'],
'b': ['y', 'c'],
'c': ['q', 'r', 'a', 'b']
}

Tags: 过程mydictappend大字典
2条回答

这是另一种方法,使用集合交点,以及保持父/子关系的中间映射。你知道吗

from collections import defaultdict

d = defaultdict(list)

keys = set([*mydict])

for k, v in mydict.items():
    intersected = keys & set(v)
    for i in intersected:
        d[i].append(k)

print(d)
# defaultdict(list, {'c': ['b', 'a']})

for found, value in d.items():
    mydict[found].extend(value)

print(mydict)
# {'a': ['z', 'c'], 'b': ['y', 'c'], 'c': ['q', 'r', 'b', 'a']}
for k in mydict:
    for val in mydict[k]:
        if val in mydict:
            mydict[val] += [k]

相关问题 更多 >