2011-11-07 174 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

這實際上爲我工作。謝謝! –