2011-11-07 126 views
0

我有三个Python列表。前两个包含字符串,第三个包含与第一个匹配的id。使用python比较列表

我想比较第二个列表中的字符串与第一个列表中的所有术语,并且当我找到相同的字符串时,我想从第三个列表中取出该id并从第二个列表中替换该字符串。

例如

list1 = ['hello, 'bye', 'third'] 
list2 = ['bye', 'second', 'forth'] 
list3 = [100, 150, 60] 

正如您所看到的常见术语是bye。所以我想从列表3(它是150并对应于列表1中的字符串)中取得id,并用此id替换列表2中的'bye'字符串。

有没有一种简单的方法来做到这一点与Python?

回答

2

首先,构建一个字典,将list1中的字符串映射到相应的ID。然后,使用列表理解应用映射:

list1 = ["hello", "bye", "third"] 
list2 = ["bye", "second", "forth"] 
list3 = [100, 150, 60] 
d = dict(zip(list1, list3)) 
print([d.get(x, x) for x in list2]) 

打印

[150, 'second', 'forth'] 
+0

这实际上为我工作。谢谢! –