我想生成在一个dict中索引的列表中的值的所有组合:
{'A':['D','E'],'B':['F','G','H'],'C':['I','J']}
每一次,每个dict条目的一个条目将被选取并与来自其他键的条目组合,因此我有:
['D','F','I']
['D','F','J']
['D','G','I']
['D','G','J']
['D','H','I']
...
['E','H','J']
我知道在itertools
中有一个东西可以生成列表中项目的组合,但是我不认为我可以在这里使用它,因为我有不同的值“池”。
是否有任何现有的解决方案可以做到这一点,或者我应该如何继续自己做,我相当坚持这个嵌套结构。
5条答案
按热度按时间hrysbysz1#
如果你想保持
key:value
在排列中,你可以用途:这将为您提供一个具有排列的字典列表:
**免责声明:**不完全是操作程序所要求的,但谷歌发送我到这里寻找。如果你想获得操作程序所要求的,你应该只是删除在列表理解的dict部分,即。
ki0zmccv2#
其中打印:
gcuhipw93#
使用scikit-learn中的ParameterGrid怎么样?它创建了一个生成器,你可以在一个普通的for循环中进行迭代。在每次迭代中,你会得到一个包含当前参数组合的字典。
qvtsj1bj4#
输出将为:
wnrlj8wa5#
作为补充,这里有一个3-liner程序,它用纯python实现了这个功能,这样您就可以理解这个概念,但是itertools确实更高效。