I used something different, hope you don't mind. I believe it works:
from itertools import compress
data2={key:list(compress(data[key],[i-1 for i in data['classifier']])) for key in data.keys()}
data1={key:list(compress(data[key],[i-2 for i in data['classifier']])) for key in data.keys()}
It is my first time using itertools.compress
so I am not an expert. Anyway, it works like a mask so something like:
>>> list(compress(['no','yes'],[False, True]))
gives:
['yes']
Also, if
data ['classifier'] = [1, 1, 2]
then
[i-1 for i in data['classifier']]
gives:
[0, 0, 1] #evaluates to [False,False,True]
and
[i-2 for i in data['classifier']]
gives:
[-1, -1, 0] #evaluates to [True,True,False]
Now, assuming you wanted 0 and 1 in classifier and if the classification key is 0 you have data1, this is your code:
data2={key:list(compress(data[key],[i for i in data['classifier']])) for key in data.keys()} # or just data['classifier']
data1={key:list(compress(data[key],[i + anything for i in data['classifier']])) for key in data.keys()}