我有2个字符串列表:
['Tipo de fertilizante',
'N',
'P2O5',
'K2O',
'S',
'CaO',
'MgO',
'Zn',
'Solubilidad g/100cc H2O',
'Precio (€/100 kg)',
'€/UF (N)',
'€/UF (P2O5)',
'€/UF (K2O)',
'€/UF (S)',
'€/UF (CaO)',
'€/UF (MgO)',
'JERARQUIA - (N)',
'JERARQUIA - (P2O5)',
'JERARQUIA - (K2O)',
'JERARQUIA - (S)',
'JERARQUIA - (CaO)',
'JERARQUIA - (MgO)',
'Abono']
这是第二个:
['JERARQUIA - (N)',
'JERARQUIA - (P2O5)',
'JERARQUIA - (K2O)',
'JERARQUIA - (S)',
'JERARQUIA - (CaO)',
'JERARQUIA - (MgO)']
我想获取包含在第二个元素中的第一个元素,所以期望的结果将是:
['N',
'P2O5',
'K2O',
'S',
'CaO',
'MgO',
'JERARQUIA - (N)',
'JERARQUIA - (P2O5)',
'JERARQUIA - (K2O)',
'JERARQUIA - (S)',
'JERARQUIA - (CaO)',
'JERARQUIA - (MgO)',]
我已经研究了this的答案,这就是我所尝试的:
[s for s in list_1 if any(i in s for i in list_2)]
但是我得到的结果是:
['JERARQUIA - (N)',
'JERARQUIA - (P2O5)',
'JERARQUIA - (K2O)',
'JERARQUIA - (S)',
'JERARQUIA - (CaO)',
'JERARQUIA - (MgO)']
这不是我想要的。经过很多次反复讨论之后,我仍然不知道如何获得所需的结果。
我该怎么做?
非常感谢您。
答案 0 :(得分:4)
尝试以下方法:
[s for s in list_1 if any(s in i for i in list_2)]
(说明:在您的示例中,我们检查的是i中的s而不是i中的i,这会导致结果有所不同)
答案 1 :(得分:1)
您可以通过嵌套for循环来实现。 它将使程序有点冗长,但是可以确保您可以运行该程序。
list_3 = []
for i in list_1:
for j in list_2:
if i == j:
list_3.append(i)
请尝试这种方式。