擅长:python、mysql、java
<p>我建议把条件从第一项中去掉:</p>
<pre><code>def assoc(i, v):
if isinstance(v, list):
return [(i, b) for b in v]
return [(i, v)]
raw_vals = [assoc(i, v) for i, v in sample_dict.items())]
end_goal = [dict(i) for i in product(*raw_vals)]
</code></pre>
<p>那么理解就是地图</p>
<p>我还建议测试值是否是列表而不是字符串,因为这将允许值是列表以外的任何类型,并且不会被迭代。这也允许将列表的子类型视为列表</p>