创建从字典键到它的值的所有组合的 Pythonic 方式

dab*_*ues 2 python python-itertools python-3.x

所以假设我有一本这样的字典:

d = {"key1": (1, 2, 3), "key2": ("3", "4", "5")}
Run Code Online (Sandbox Code Playgroud)

我想要实现的(没有嵌套循环,以真正的 Pythonic 方式)是以这种方式获取所有键值组合:

[("key1", 1), ("key1", 2), ("key1", 3), ("key2", "3"), ("key2", "4"), ("key2", "5")]
Run Code Online (Sandbox Code Playgroud)

所以就像键的分配值的组合一样,因为该值将是一个容器。

我尝试浏览itertools文档,但我似乎没有找到任何可以帮助我解决这个问题的东西。有什么办法可以很好地做到这一点,还是我使用循环?

Mar*_*nen 6

嵌套列表理解可以解决问题:

d = {"key1": (1, 2, 3), "key2": ("3", "4", "5")}
result = [(k,v) for k,values in d.items() for v in values]
print(result)
Run Code Online (Sandbox Code Playgroud)

输出:

[('key1', 1), ('key1', 2), ('key1', 3), ('key2', '3'), ('key2', '4'), ('key2', '5')]
Run Code Online (Sandbox Code Playgroud)