首页 > 解决方案 > 在列表列表中查找共同元素

问题描述

在这里挣扎......我有一个这样的列表列表:

In [272]: mylist
Out[272]:
[['ABC', 'NY', 'DFW', '1'],
 ['ABC', 'NY', 'DFW', '2'],
 ['ABC', 'NY', 'LAX', '2']]

我正在尝试匹配在第二个元素中具有公共字符串的行,因此在这种情况下 DFW 将匹配

所以做这样的事情提供了预期的结果:

In [273]: mylist[0][2] in mylist[1][2]
Out[273]: True

In [274]: mylist[0][2] in mylist[2][2]
Out[274]: False

但是当我尝试迭代列表时,它对我来说没有意义

In [275]: for line in mylist:
     ...:     if line[2] in line[2]:
     ...:         print(f"matched {line[2]}")
     ...:
matched DFW
matched DFW
matched LAX

我只想打印出匹配的两行

标签: python

解决方案


我不确定我是否理解您,但您是否正在尝试这样做?

mylist = [['ABC', 'NY', 'DFW', '1'],
 ['ABC', 'NY', 'DFW', '2'],
 ['ABC', 'NY', 'LAX', '2']]

for line in mylist:
    if line[2] == mylist[0][2]:
        print(f"matched {line[2]}")

输出:

matched DFW
matched DFW

推荐阅读