擅长:python、mysql、java
<p>从背景和细节开始提问总是有帮助的。
python版本也可以发挥作用。在</p>
<p>您为我们提供的数据结构是非常可疑的-尤其是listB中每个元组中的第三个元素…为什么要有一个string元素然后像这样定义它(C;D;E)'??在</p>
<p>即使我不明白你从何而来,或者这意味着什么,在post中没有提供上下文,这段代码应该能让你达到目的。在</p>
<p>它将给您一个元组列表(listC),每个元组有两个元素。元素1具有来自listA的名称,元素2具有来自listB的名称,它们具有post中描述的匹配项。
注意:目前,匹配只是通过一个find来完成,这将与所提供的细节完美结合,但是如果您可能有可能导致误报的数据,或者如果您想忽略case,则可能需要更改此项以适合您的需要。在</p>
<pre><code>listA = [('Harry', 'X', 'A'), ('James', 'Y', 'G'), ('John', 'Z', 'D')]
listB = [('Helen', '2', '(A; B)', '3'),
('Victor', '9', '(C; D; E)', '4'),
('Alan', '10', '(A)', '57'),
('Paul', '11', '(F; B)', '43'),
('Sandra', '12', '(F)', '31')]
listC = []
for a in listA:
for b in listB:
if b[2].find(a[2]) != -1:
listC.append((a[0], b[0]))
print(listC)
</code></pre>
<p>这给了你。
[('Harry','Helen'),('Harry','Alan'),('John','Victor')]</p>