擅长:python、mysql、java
<p>为此使用“设置交点”:</p>
<pre><code>list(set(listA) & set(listB))
</code></pre>
<p>给出:</p>
<pre><code>['a', 'c']
</code></pre>
<p>注意,由于我们处理的是<em>集合</em>这可能<em>不是</em>保持顺序:</p>
<pre><code>' '.join(list(set(john.split()) & set(mary.split())))
'I and love yellow'
</code></pre>
<p>使用<code>join()</code>将结果列表转换为字符串。</p>
<p>--</p>
<p>对于下面的示例/注释,这个<em>将保持顺序</em>(灵感来自@DSM的注释)</p>
<pre><code>' '.join([j for j, m in zip(john.split(), mary.split()) if j==m])
'I love yellow and'
</code></pre>
<p>对于列表长度不同的情况,其结果在下面的注释中指定:</p>
<pre><code>aa = ['a', 'b', 'c']
bb = ['c', 'b', 'd', 'a']
[a for a, b in zip(aa, bb) if a==b]
['b']
</code></pre>