擅长:python、mysql、java
<p>将元组存储在字典中以获得更干净的解决方案:</p>
<pre><code>tups = {'narrative': narrative,
'subject': subject,
'activity': activity,
'filer': filer}
</code></pre>
<p>解决方案:</p>
^{pr2}$
<p>也可以使用<a href="https://docs.python.org/3/library/itertools.html#itertools.compress" rel="nofollow">^{<cd1>}</a>编写:</p>
^{3}$
<hr/>
<p>上面的解决方案不保留元组的顺序,例如,它们可以返回类似</p>
<pre><code>['subject', 'filer, subject', 'filer', 'activity, subject']
</code></pre>
<p>如果需要保留订单,请使用<a href="https://docs.python.org/3/library/collections.html#collections.OrderedDict" rel="nofollow">^{<cd2>}</a>,如下所示:</p>
<pre><code>from collections import OrderedDict
tups = OrderedDict([
('narrative', narrative),
('subject', subject),
('activity', activity),
('filer', filer)
])
# The result is ['subject', 'subject, filer', 'filer', 'subject, activity']
</code></pre>
<p><strong><em>编辑:</em></strong>不涉及字典的解决方案:</p>
<pre><code>from itertools import compress
reason = [', '.join(compress(variables, x))
for x in zip(narrative, subject, activity, filer)]
</code></pre>
<p>如果<code>zip(...)</code>调用不再适合一行,请考虑使用字典。在</p>