从另一个字典的值创建python字典?

时间:2013-05-23 21:37:52

标签: python algorithm dictionary

我正在尝试从另一个字典的键值有效地构造python字典。

例如......

    dict1 = {'foo': [1, 3, 7], 'bar': [2, 4, 8]} ## note: all values in {key: value} will be unique
    ## Algorithm here...
    dict2 = {1: [3, 7], 3: [1, 7], 7: [1, 3], 2: [4, 8], 4: [2, 8], 8: [2, 4]}

我可以通过强力方法获得此结果,但这些词典适用于超过100000个节点的图形,因此我需要这样才能有效。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:6)

我将如何做到这一点:

dict2 = {k: x[:i] + x[i+1:] for x in dict1.values() for i, k in enumerate(x)}

如果您使用的是Python 2.x,则可能需要使用dict1.itervalues()