【发布时间】:2016-11-16 17:39:12
【问题描述】:
输入:
>>> foo = {("A", "B"), ("A", "G"), ("A", "H"),
... ("B", "C"), ("B", "H"),
... ("C", "D"),
... ("D", "E"), ("D", "G"), ("D", "H"),
... ("E", "F"), ("E", "G"), ("E", "H"),
... ("F", "I"), ("F", "J"), ("F", "K"),
... ("G", "H")}
我正在尝试像这样对我的集合进行分组,到目前为止我一直没有成功,我设法只像这样对它们进行分组。
实际输出:
>>> {k:set(x[1] for x in v) for k,v in itertools.groupby(sorted(foo), key=lambda x: x[0])}
{'B': {'C', 'H'}, 'E': {'H', 'G', 'F'}, 'D': {'E', 'G', 'H'}, 'A': {'B', 'G', 'H'}, 'C': {'D'}, 'G': {'H'}, 'F': {'I', 'K', 'J'}}
不过,这是我的想要的输出:
foo1 = {"A": {"B", "G", "H"},
"B": {"A", "H", "C"},
"C": {"B", "D"},
"D": {"C", "E", "G", "H"},
"E": {"D", "F", "G", "H"},
"F": {"E", "I", "J", "K"},
"G": {"A", "D", "E", "H"},
"H": {"A", "B", "D", "E", "G"},
"I": {"F"},
"J": {"F"},
"K": {"F"}
}
我在考虑排列或组合?但我仍然不知道该怎么做。 提前致谢。 编辑:添加了字符串如何相关的图片。
【问题讨论】:
-
您想确定字符串的分组方式是什么?编辑:等等,我想我明白了,但也请把这个放在问题中
-
鉴于 Python set 和 dict 本质上是无序的,您是否期望输出有特定的顺序?
-
您的排序字典理解确实排序正确,但它没有以您想要的方式打印给您?编辑:nvm,我在你得到的那个中看到了一些错误
-
如果您正在使用图表,请查看 NetworkX。
-
请不要破坏您的帖子
标签: python python-3.x dictionary set permutation