创建一个新的字典,与python

时间:2017-10-29 00:32:40

标签: python python-3.x dictionary list-comprehension

我有一本字典。我想创建一个新的字典,将值列表(my_list)与我的字典值进行比较。

我的词典,code_dict键和值:

33003282 :['25000', '27800', 'None', '4779'], 
33003283: ['2564', '6264', '78784', '7841', '89564'], 
33003285: ['32723', '8954', '5259', '5225', '25000','04189', '8820', '2166']

我有my_list这样:

my_list = ['27800', '6264', '5225']

现在,我想将列表值与Dictionary值进行比较,并创建一个包含这样的值的新词典,

33003282 :['25000', 'None', '4779'], 
33003283: ['2564','78784', '7841', '89564'], 
33003285: ['32723', '8954', '5259', '25000','04189', '8820', '2166']

我在理解方式上做了以下几点,希望我能像lists中那样做:

new_dict = {key: value for value in code_dict.items()}.isin([code for code in my_list])

在词典中使用isin不起作用,如何创建新词典?

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

d = {33003282 :['25000', '27800', 'None', '4779'], 33003283: ['2564', '6264', '78784', '7841', '89564'],33003285: ['32723', '8954', '5259', '5225', '25000','04189', '8820', '2166']}
my_list = ['27800', '6264', '5225']
final_d = {a:[i for i in b if i not in my_list] for a, b in d.items()}

输出:

{33003282: ['25000', 'None', '4779'], 33003283: ['2564', '78784', '7841', '89564'], 33003285: ['32723', '8954', '5259', '25000', '04189', '8820', '2166']}

输出是一个字典,其中的值被过滤,因此my_list

中不存在任何元素