在没有嵌套 for 循环的情况下循环 dict

Looping over dict without nested for loops

我有一本名为 params 的字典。我需要遍历这个字典,以便它按顺序打印 learn_rate 和 btch_size 的所有可能组合。 这是我的命令:

params = dict(
    learn_rate = [0.01, 0.001, 0.0001]
    ,btch_size = [50, 70, 80]

)

期望的输出:

0.01 50
0.01 70
0.01 80
0.001 50
0.001 70
0.001 80
0.0001 50
0.0001 70
0.0001 80

我正在考虑为此使用 itertools,因为我不想在决定添加新列表时使用大量嵌套的 for 循环。有人有什么建议吗?

'itertools.product()' 正是这样做的。您可以添加任意数量的列表。

>>> list(itertools.product(*params.values()))
[(0.01, 50), (0.01, 70), (0.01, 80), (0.001, 50), (0.001, 70), (0.001, 80), (0.0001, 50), (0.0001, 70), (0.0001, 80)]
>>>