在python中将dictionary的值更改为dictionary的key

2024-04-20 10:38:41 发布

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

我想创建一个“真正的”字典:一个荷兰语到英语的词典,包含以下单词: def反向翻译(字典):

>>> dictionary= {'tension': ['spanning'], 'voltage': ['spanning', 'voltage']}
>>> dictionary= reverseTranslation(dictionary)
>>> dictionary
{'spanning': ['tension', 'voltage'], 'voltage': ['voltage']}

正如你在荷兰语中看到的,“跨越”在英语中有两种不同的含义。 我们将感谢您的帮助。在


Tags: dictionary字典def单词词典含义voltagespanning
3条回答

如果您询问如何获得该结果,最具可读性的方法是:

from collections import defaultdict

def reverse_dictionary(dictionary):
    result = defaultdict(list)
    for key, meanings in dictionary.iteritems():  #or just .items()
        for meaning in meanings:
            result[meaning].append(key)
    return result

或者,您可以先将值求和,然后在字典上迭代。在

d= {'tension': ['spanning'], 'voltage': ['spanning', 'voltage'],'extra':['voltage']}
val = set(reduce(list.__add__,d.values()))

dict={}
for x in val:
    tmp={x:[]}
    for k,v in d.items():
        if x in v:
           tmp[x].append(k)
    dict.update(tmp)

print dict

注意:集合只在Python2.4和更高版本中可用

给你:

def reverseTranslation(d):
    return dict((v1,[k for k,v in d.iteritems() if v1 in v])
                for v1 in set(sum(d.values(),[])))

相关问题 更多 >