2011-07-30 77 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