<p>这可以通过对{<cd2>}和{<cd3>}使用<code>itertools.product</code>(每个值的组合)的组合来实现,然后对结果元组和<code>Cost</code>列表之间的对应值对使用<code>zip</code>:</p>
<pre><code>import itertools
W = ['Anis', 'James', 'Arthur']
C = ['City1', 'City2', 'City3']
Cost = [53, 27, 13, 80, 47, 67, 53, 73, 47]
for k, v in zip(itertools.product(W, C), Cost):
d = {k: v}
print(d)
</code></pre>
<p>这使得:</p>
<pre><code>{('Anis', 'City1'): 53}
{('Anis', 'City2'): 27}
{('Anis', 'City3'): 13}
{('James', 'City1'): 80}
{('James', 'City2'): 47}
{('James', 'City3'): 67}
{('Arthur', 'City1'): 53}
{('Arthur', 'City2'): 73}
{('Arthur', 'City3'): 47}
</code></pre>
<p>如果实际上您想要的是一个单独的字典,而不是一系列的单元素字典,则将其修改为:</p>
<pre><code>d = {k: v for k, v in zip(itertools.product(W, C), Cost)}
print(d)
</code></pre>
<p>其中:</p>
<pre><code>{('Anis', 'City1'): 53, ('Anis', 'City2'): 27, ('Anis', 'City3'): 13, ('James', 'City1'): 80, ('James', 'City2'): 47, ('James', 'City3'): 67, ('Arthur', 'City1'): 53, ('Arthur', 'City2'): 73, ('Arthur', 'City3'): 47}
</code></pre>
<p>或者更简单地说(感谢用户<a href="https://stackoverflow.com/users/12671057/heap-overflow">Heap Overflow</a>的建议):</p>
<pre><code>d = dict(zip(itertools.product(W, C), Cost))
</code></pre>