从集合中获取字典的 Pythonic 方法

标签 python python-3.x

我已经设置了,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)

我要找的是: 这是最好的方法吗?是否有更 Pythonic 的方式来实现我想要的?

最佳答案

一个简单的字典理解:

>>> 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'}}
>>>

关于从集合中获取字典的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63112421/

相关文章:

python - 在 python 中轮询 api 以获取特定的 json 元素

python - 在 Flask 中执行耗时函数时显示 ‘loading’ 消息

python - 数据 View 不显示 DataFrame 的索引,也不显示 numpy 数组中的行号

python - 有效地对 Pandas DataFrame 行进行分区,使得每个分区中的列总和至少为 X

python - 可以使用 AngularJS+Flask 堆栈来完成推送通知吗?

python - 列表中的排序列表

python - 确定矩阵中是否存在复数

python - 如何反转python dict中键的顺序?

python - 为包含单词的列表生成唯一的 ID

python - 数字分解