我有一个如下所示的列表:
z = [('Anna Smith', 'IN1'), ('John', 'IN2'), ('Matt Andrew', 'IN3'), ('Smith', 'IN4')]
还有另一个列表:
c = ['Anna Smith', 'John', 'Anna', 'Smith']
我希望你能给我以下输出结果:
o = ['Anna Smith|IN1', 'John|IN2', 'Smith|IN4']
我已经尝试了下面的代码:
for s, s_inc in z:
for word in c:
if word.lower() in s.lower():
o.append("%s|%s"%(word, s_inc))
但是上面的代码输出了以下结果:
o = ['Anna Smith|IN1', 'Anna|IN1', 'Smith|IN1', 'John|IN2', 'Smith|IN4']
我该如何获得我想要的东西?
['|'.join((i,t)) for i in c for k,t in z if k==i] ['Anna Smith|IN1', 'John|IN2', 'Smith|IN4']
- Mazdak