Python:根据预期值的固定“主”列表检查可变长度列表

时间:2013-07-16 14:40:06

标签: python list dictionary

我正在使用包含键:列表对的字典。列表具有可变长度,因为它们代表特定用户访问的资产。即:

{a:[0,3,4],b:[0,1,3,4,5]}

我有一个资产列表,我想检查每个用户。即:

[0,1,2,3,4,5,6]

如何根据主列表检查每个用户,以便我最终得到:

{a:[1,0,0,1,1,0,0],b:[1,1,0,1,1,1,0]}

对于用户访问过的每个资产,新列表返回1,对于每个错过的资产,它返回0.新列表应该都具有相同的主列表长度。

非常感谢, 塞恩

1 个答案:

答案 0 :(得分:2)

你可以使用理解:

>>> d = {a: [0,3,4], b: [0,1,3,4,5]}
>>> master = [0,1,2,3,4,5,6]
>>> {k: [int(i in v) for i in master] for k,v in d.iteritems()}
{'a': [1, 0, 0, 1, 1, 0, 0], 'b': [1, 1, 0, 1, 1, 1, 0]}