擅长:python、mysql、java
<p>如果要显示名称和代码,只需将它们组合起来,不需要两个生成器。你知道吗</p>
<pre><code>', '.join(w.name + ':' + w.code for w in obj.someProducts.all())
</code></pre>
<p>或字符串格式:</p>
<pre><code>', '.join('{name}: {code}'.format(name=w.name, code=w.code) for w in obj.someProducts.all())
</code></pre>
<p>或者另一个连接(不推荐,除非您可以给它一个生成器-创建另一个列表是一种浪费,但这演示了如何嵌套连接)</p>
<pre><code>', '.join(':'.join([w.name, w.code]) for w in obj.someProducts.all())
</code></pre>
<p>另一方面,python3.6引入了<a href="https://www.python.org/dev/peps/pep-0498/" rel="nofollow">Literal String Interpolation</a>,这意味着您应该能够执行类似的操作(我将在家中进行测试,因为我的工作环境中没有3.6;是否有人可以验证这一点)。如果没有,请告诉我,我会删除它):</p>
<pre><code>', '.join(f'{w.name}: {w.code}' for w in obj.someProducts.all())
</code></pre>