擅长:python、mysql、java
<p>您的问题陈述与预期输出不匹配。您说“sub string”,但是您期望的输出不包含<code>31</code>,即使它是<code>asasa1311</code>的子字符串。以下是一种方法:</p>
<pre><code>>>> e = ["2311","1441","31","233122"]
>>> r = ["asasa2311","dadewr1441","app"]
>>> [eelem for relem in r for eelem in e if eelem in relem]
['2311', '31', '1441']
</code></pre>
<p>或者如果您想要预期的输出:</p>
^{pr2}$
<p>或者,如果你想在第一场比赛中更有效率地爆发,可以使用生成器方法:</p>
<pre><code>>>> e = ["2311","1441","31","233122"]
>>> r = ["asasa2311","dadewr1441","app"]
>>> [eelem for eelem in e if any(r if eelem in relem else False for relem in r)]
['2311', '1441', '31']
</code></pre>
<p>如果使用<code>in</code>返回布尔值的事实,则可以缩短一点:</p>
<pre><code>>>> [eelem for eelem in e if any(eelem in relem for relem in r)]
['2311', '1441', '31']
</code></pre>