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文档,但我似乎没有找到任何可以帮助我解决这个问题的东西。有什么办法可以很好地做到这一点,还是我使用循环?
嵌套列表理解可以解决问题:
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)
| 归档时间: |
|
| 查看次数: |
34 次 |
| 最近记录: |