擅长:python、mysql、java
<p>我们首先将字典值列表中的每个名称与其键组合起来,将这些结果保存到<code>y</code>列表中。接下来,我们使用<code>itertools.product</code>创建所需对的列表<code>z</code>。然后我们用来自<code>y</code>的单个名称扩展<code>z</code>。最后,我们将一个空dict添加到<code>z</code></p>
<pre><code>from itertools import product
x = {"first_name": ["Habib", "Wen-lao"], "second_name": ["Khan", "Chen"]}
y = [[(k, u) for u in v] for k, v in x.items()]
z = [dict(t) for t in product(*y)]
z.extend({k: v} for u in y for k, v in u)
z.append({})
for row in z:
print(row)
</code></pre>
<p><strong>输出</strong></p>
<pre><code>{'first_name': 'Habib', 'second_name': 'Khan'}
{'first_name': 'Habib', 'second_name': 'Chen'}
{'first_name': 'Wen-lao', 'second_name': 'Khan'}
{'first_name': 'Wen-lao', 'second_name': 'Chen'}
{'first_name': 'Habib'}
{'first_name': 'Wen-lao'}
{'second_name': 'Khan'}
{'second_name': 'Chen'}
{}
</code></pre>
<p>如果<code>x</code>列表包含2个以上的项,并且每个<code>x</code>值列表中的子列表包含2个以上的项,则此代码将给出正确的结果。你知道吗</p>