【问题标题】:How to create set of sets from dictionary如何从字典创建一组集合
【发布时间】:2022-11-17 19:54:29
【问题描述】:

我需要帮助解决 python 中的问题。我有一个 python 字典,如图所示enter image description here。我想从字典中创建一组集合,这样每组集合都包含所有键。例如,我想要这样的输出:enter image description here。我们看到每个集合都有一个来自字典每个键的元素。 我还是编程新手,最近才开始学python。以下是我到目前为止所尝试的 谢谢 这是我试图重现的伪代码,但我一直无法取得任何进展,因为它有几行令人困惑。 enter image description here

Rplus[i] = {'i1': {'r1', 'r3', 'r7'},'i2': {'r10', 'r8'},'i3': {'r4', 'r5', 'r9'},'i4': {'r2', 'r6'}}

S = [{'r1', 'r10', 'r5','r2'}, {'r3', 'r8', 'r4', 'r6'}, {'r2', 'r5', 'r8', 'r1'},......., {'r10', 'r6', 'r4', 'r7'}]
S = []
Sprime = []

for i in items: 
    if len(Rplus[i])==1:
        if len(S)==0:
            S.append(Rplus[i])
        else:
            for s in range(len(S)):
                S[s].union(Rplus[i])
    else:
        Sprime = copy.deepcopy(S)
        for r in Rplus[i]:
            if len(Sprime) == 0:
                Sprime.append({r})
            else:
                for j in range(len(Sprime)):
                    Sprime[j].update([r])
                    if Sprime[j] not in S:
                        S.append(Sprime[j])             
print(S)

【问题讨论】:

  • 嗨@kehinde ganiyu,欢迎来到 stackoverflow,建议您粘贴输入/期望输出而不是图像,您会得到更快的响应。
  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。
  • 好的。 @ellhe-blaster,感谢您的通知。

标签: python dictionary data-structures set


【解决方案1】:
import itertools

set_of_tuples=itertools.product(*original_dict.values())
list_of_sets = [set(x) for x in bb]

set_of_tuples 包含来自每个键的一个值的所有可能组合。 list_of_sets 转换为您有图片的输出格式。

【讨论】:

  • 我猜你的意思是list_of_sets = [set(x) for x in set_of_tuples] ;)
猜你喜欢
  • 2015-01-30
  • 2017-07-14
  • 2022-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多