回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有动态数量的字符串向量,我需要将它们相乘,并创建一个dict数组,将所有可能的结果结合起来</p>
<p>如果输入是静态的,我会这样做:</p>
<pre><code>sth = {
"param1": ["p1v1", "p1v2"],
"param2": ["p2v1", "p2v2", "p2v3"],
"param3": ["p3v1", "p3v2"]
}
param_sets = []
for a_top_val in sth["param1"]:
for a_val in sth["param2"]:
for a_bottom_val in sth["param3"]:
param_sets.append({
"param1": a_top_val,
"param2": a_val,
"param3": a_bottom_val
})
print(param_sets)
print(len(param_sets))
</code></pre>
<p>这将打印组合的dict,如下所示:</p>
<pre><code>[
{'param1': 'p1v1', 'param2': 'p2v1', 'param3': 'p3v1'},
{'param1': 'p1v1', 'param2': 'p2v1', 'param3': 'p3v2'},
{'param1': 'p1v1', 'param2': 'p2v2', 'param3': 'p3v1'},
{'param1': 'p1v1', 'param2': 'p2v2', 'param3': 'p3v2'},
{'param1': 'p1v1', 'param2': 'p2v3', 'param3': 'p3v1'},
{'param1': 'p1v1', 'param2': 'p2v3', 'param3': 'p3v2'},
{'param1': 'p1v2', 'param2': 'p2v1', 'param3': 'p3v1'},
{'param1': 'p1v2', 'param2': 'p2v1', 'param3': 'p3v2'},
{'param1': 'p1v2', 'param2': 'p2v2', 'param3': 'p3v1'},
{'param1': 'p1v2', 'param2': 'p2v2', 'param3': 'p3v2'},
{'param1': 'p1v2', 'param2': 'p2v3', 'param3': 'p3v1'},
{'param1': 'p1v2', 'param2': 'p2v3', 'param3': 'p3v2'}
]
</code></pre>
<p>如何使<code>sth</code>周围的for循环成为动态的</p>