如何在字典中生成所有可能的组合

Posted

技术标签:

【中文标题】如何在字典中生成所有可能的组合【英文标题】:How to generate all possible combinations in a dictionary in a dictionary 【发布时间】:2022-01-24 03:02:39 【问题描述】:

所以我在这样的字典中有一个字典:

'd': 'c': 3, 'c': 'd': 3, 'b': 2, 'b': 'c': 2, 'a': 1, 'a': 'b': 1

我需要 python 代码来给出输出:

("d","c")
("c","d")
("c","b")
("b","c")
("b","a")
("a","b")

我不知道该怎么做,我们接受任何帮助。

【问题讨论】:

【参考方案1】:
x = 'd': 'c': 3, 'c': 'd': 3, 'b': 2, 'b': 'c': 2, 'a': 1, 'a': 'b': 1

for i in x.keys():
  for j in x.get(i).keys():
    print((i,j))

【讨论】:

【参考方案2】:

您可以将列表推导与dict.items 一起使用:

dct = 'd': 'c': 3, 'c': 'd': 3, 'b': 2, 'b': 'c': 2, 'a': 1, 'a': 'b': 1

output = [(key_1, key_2) for key_1, subdct in dct.items() for key_2 in subdct]
print(output) # [('d', 'c'), ('c', 'd'), ('c', 'b'), ('b', 'c'), ('b', 'a'), ('a', 'b')]

【讨论】:

这正是我想要的。非常感谢您的回答【参考方案3】:
dict1 = 'd': 'c': 3, 'c': 'd': 3, 'b': 2, 'b': 'c': 2, 'a': 1, 'a': 'b': 1

[(k1,k2) for k1 in dict1.keys() for k2 in dict1[k1].keys()]

【讨论】:

以上是关于如何在字典中生成所有可能的组合的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - 在单个数组中生成所有元素组合(成对)

Hive UDF 从列表中生成所有可能的有序组合

ruby - 如何从字符串数组中生成可能的字母顺序组合?

在 Haskell 中生成下一个字典字符串

在python中生成组合

如何在 PHP 中生成多个数组中的所有项目组合