首页 > 解决方案 > 从集合中获取字典的 Pythonic 方法

问题描述

我已经设置了,some_set = {'A', 'B', 'C'}

我希望将其变成这样的字典:
my_dict = {'A':{'B','C'}, 'B':{'A','C'}, 'C':{'A','B'}}
即集合字典,其中每个键都映射到具有原始集合中除键本身之外的所有元素的集合。

我现在拥有的:

for letter_1 in some_set
    for letter_2 in some_set:
        if letter_1 not in my_dict.keys():
            my_dict[letter_1] = set()
        if letter_2 != letter_1:
            my_dict[letter_1].add(letter_2)

我在寻找什么:这是最好的方法吗?有没有更蟒蛇的方式来实现我想要的?

标签: pythonpython-3.x

解决方案


一个简单的字典理解:

>>> some_set = {'A', 'B', 'C'}
>>> my_dict = {k: some_set - {k} for k in some_set}
{'A': {'B', 'C'}, 'B': {'A', 'C'}, 'C': {'A', 'B'}}
>>>

推荐阅读