回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有以下数据结构:</p>
<pre><code>a = [('customerA', '1.0.0'), ('customerB', '1.0.0'), ('customerC', '1.0.1')]
b = (('customerB', '1.1.0'), ('customerC', '1.0.1'))
</code></pre>
<p>我希望结果是这样的:</p>
^{pr2}$
<p>甚至完全跳过不存在的客户:</p>
<pre><code>[('customerB', '1.0.0', '1.1.0'), ('customerC', '1.0.1', '1.0.1')]
</code></pre>
<p>在这种情况下,<code>zip</code>函数没有帮助,因为<code>b</code>来自客户名称的<code>MySQLCursor.fetchall()</code>with<code>WHERE</code>子句,因此如果客户不存在,它将与<code>a</code>不匹配:</p>
<pre><code>>>> [a + (b[1],) for a, b in zip(a, b)]
[('customerA', '1.0.0', '1.1.0'), ('customerB', '1.0.0', '1.0.1')]
>>> import itertools
>>> for a, b in itertools.zip_longest(a, b):
... print(a, b)
...
('customerA', '1.0.0') ('customerB', '1.1.0')
('customerB', '1.0.0') ('customerC', '1.0.1')
('customerC', '1.0.1') None
</code></pre>