<p>根据您的问题,您似乎想检查<code>listA</code>中的任何项目是否是<code>listB</code>的一部分</p>
<p>让我们首先将<code>listA</code>转换成一个元组,看起来像<code>listB</code></p>
<pre><code>listA = ['abc - 123', 'def - 456', 'ghi - 789', 'abc - 456']
#this will convert listA into a tuple like listB
listX = [tuple(i.split(' - ')) for i in listA]
</code></pre>
<p>既然<code>listA</code>和<code>listB</code>看起来都一样,您可以将它们相互比较</p>
<p>下面的if语句将<code>listX</code>的每个元素与<code>listB</code>进行比较。如果其中任何一个为真,那么它将打印<code>'contains something'</code></p>
<pre><code>if any(True for i, j in zip(listX, listB) if i == j):
print("contains something")
else:
print("nothing")
</code></pre>
<p>但是,如果您想知道<code>listA</code>和<code>listB</code>之间匹配的所有项目,那么可以使用下面两行</p>
<pre><code>temp = [x for x in listX for b in listB if x == b]
print (temp)
</code></pre>
<p>完整代码如下所示:</p>
<pre><code>listA = ['abc - 123', 'def - 456', 'ghi - 789', 'abc - 456']
listB = [('abc', '123'), ('def', '456'), ('ghi', '789')]
#convert listA into a tuple to compare with listB
listX = [tuple(i.split(' - ')) for i in listA]
#check if any item in listX matches with listB
if any(True for i, j in zip(listX, listB) if i == j):
print("contains something")
else:
print("nothing")
#for each item that matches from listA with listB, store into temp
temp = [x for x in listX for b in listB if x == b]
#temp contains all matched items betwen listA and listB
print (temp)
</code></pre>
<p>输出:</p>
<pre><code>contains something
[('abc', '123'), ('def', '456'), ('ghi', '789')]
</code></pre>