2011-07-30 87 views
2

我有2所列出:比較和合並Python列表

correct_list = [1,2,3,4,5,6,7,8,9,10] 
other_list = [4,5,6,7,8,10] 

我想這兩個列表,以便結合:

combined_list = [{k:1, v:0},{k:2, v:0},{k:3, v:0}, {k:4, v:4}, {etc}] 

所以基本上是說,關鍵是正確的列表,如果other_list與correct_list不匹配,則填寫0或「」。他們確實匹配,填寫匹配值

這是否有意義?

我該如何在Python中做到這一點?

回答

4
[{'k': c, 'v': c if c in other_list else 0} for c in correct_list] 

順便說一句,如果字典的唯一元素是K和V,考慮建立一個字典,而不是字典的名單:

>>> dict((c, c if c in other_list else 0) for c in correct_list) 
{1: 0, 2: 0, 3: 0, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 0, 10: 10} 
+0

那麼,是correct_list在這? – Harry

+0

+1你的意思是在correct_list中的c :) – Ant

+0

@Harry,Ant Fixed。 – phihag