<p>我有一个python列表</p>
<pre><code>list1 = ['TC_TEST1', 'TC_TEST1_TEST2', 'TC_TEST3', 'TC_TEST1TEST2']
sublist1 = ['TEST1', 'TEST3']
</code></pre>
<p>期望输出为</p>
<pre><code>result = ['TC_TEST1', 'TC_TEST3']
</code></pre>
<p>它不应该包含子列表1中出现在字符串中间或其他位置的模式。你知道吗</p>
<p>我试过用</p>
<pre><code>result = [s for s in list1 if any(xs in s for xs in sublist1)]
</code></pre>
<p>但这也会打印出字符串中出现的任何模式,而不仅仅是结束部分。你知道吗</p>
<p>不要在</strong>中使用<strong>而是使用endswith()函数,所以只要用<code>result = [s for s in list1 if any(s.endswith(xs) for xs in sublist1)],</code>替换<code>result = [s for s in list1 if any(xs in s for xs in sublist1)]
</code>。你知道吗</p>