如何使用python中另一个字典的值筛选字典?

如何使用python中另一个字典的值筛选字典?,python,dictionary,Python,Dictionary,案例1:我想使用Dict2的值过滤Dict1,例如:使用Dict2的值过滤值>1 Dict1={'saya': 0.1823215567939546, 'menolak': 0.6931471805599453, 'omnibus': -0.15415067982725836, 'law': -0.15415067982725836, 'dan': 1.0986122886681098, 'tetap': 1.0986122886681098,

案例1:我想使用Dict2的值过滤Dict1,例如:使用Dict2的值过滤值>1

 Dict1={'saya': 0.1823215567939546,
     'menolak': 0.6931471805599453,
     'omnibus': -0.15415067982725836,
     'law': -0.15415067982725836,
     'dan': 1.0986122886681098,
     'tetap': 1.0986122886681098,
     'di': 1.0986122886681098,
     'sekolah': 1.0986122886681098,
     'diperintahkan': 1.0986122886681098,
     'untuk': 1.0986122886681098,
     'tidak': 1.0986122886681098,
     'layak': 1.0986122886681098,
     'meningkatkan': 1.0986122886681098,
     'kesejahteraan': 1.0986122886681098,
     'setuju': 0.6931471805599453,
     'diterapkan': 0.6931471805599453}

Dict2={'saya': 1,
 'menolak': 2,
 'omnibus': 3,
 'law': 1,
 'dan': 0.5,
 'tetap': 0.5,
 'di': 1,
 'sekolah': 2,
 'diperintahkan': 3,
 'untuk': 4,
 'tidak': 5,
 'layak': 1.0986122886681098,
 'meningkatkan': 6,
 'kesejahteraan': 5,
 'setuju': 8,
 'diterapkan': 2}
我希望的结果是:

Result={
         'menolak': 0.6931471805599453,
         'omnibus': -0.15415067982725836,
         'sekolah': 1.0986122886681098,
         'diperintahkan': 1.0986122886681098,
         'untuk': 1.0986122886681098,
         'tidak': 1.0986122886681098,
         'meningkatkan': 1.0986122886681098,
         'kesejahteraan': 1.0986122886681098,
         'setuju': 0.6931471805599453,
         'diterapkan': 0.6931471805599453 }
Dict2={
 'untuk': 1.0986122886681098,
 'tidak': 1.0986122886681098,
 'meningkatkan': 1.0986122886681098,
 'kesejahteraan': 1.0986122886681098,
 'setuju': 0.6931471805599453,
}
案例2:我想使用Dict2的值过滤Dict1,例如:使用Dict2的值过滤5个最佳值

 Dict1={'saya': 0.1823215567939546,
     'menolak': 0.6931471805599453,
     'omnibus': -0.15415067982725836,
     'law': -0.15415067982725836,
     'dan': 1.0986122886681098,
     'tetap': 1.0986122886681098,
     'di': 1.0986122886681098,
     'sekolah': 1.0986122886681098,
     'diperintahkan': 1.0986122886681098,
     'untuk': 1.0986122886681098,
     'tidak': 1.0986122886681098,
     'layak': 1.0986122886681098,
     'meningkatkan': 1.0986122886681098,
     'kesejahteraan': 1.0986122886681098,
     'setuju': 0.6931471805599453,
     'diterapkan': 0.6931471805599453}

Dict2={'saya': 1,
 'menolak': 2,
 'omnibus': 3,
 'law': 1,
 'dan': 0.5,
 'tetap': 0.5,
 'di': 1,
 'sekolah': 2,
 'diperintahkan': 3,
 'untuk': 4,
 'tidak': 5,
 'layak': 1.0986122886681098,
 'meningkatkan': 6,
 'kesejahteraan': 5,
 'setuju': 8,
 'diterapkan': 2}
我希望的结果是:

Result={
         'menolak': 0.6931471805599453,
         'omnibus': -0.15415067982725836,
         'sekolah': 1.0986122886681098,
         'diperintahkan': 1.0986122886681098,
         'untuk': 1.0986122886681098,
         'tidak': 1.0986122886681098,
         'meningkatkan': 1.0986122886681098,
         'kesejahteraan': 1.0986122886681098,
         'setuju': 0.6931471805599453,
         'diterapkan': 0.6931471805599453 }
Dict2={
 'untuk': 1.0986122886681098,
 'tidak': 1.0986122886681098,
 'meningkatkan': 1.0986122886681098,
 'kesejahteraan': 1.0986122886681098,
 'setuju': 0.6931471805599453,
}

您可以使用以下方法实现-

第一个结果:

Result_1 = {key: value for key, value in Dict1.items() if Dict2.get(key, 0) > 1}

{'menolak': 0.6931471805599453,
'omnibus': -0.15415067982725836,
'sekolah': 1.0986122886681098,
'diperintahkan': 1.0986122886681098,
'untuk': 1.0986122886681098,
'tidak': 1.0986122886681098,
'layak': 1.0986122886681098,
'meningkatkan': 1.0986122886681098,
'kesejahteraan': 1.0986122886681098,
'setuju': 0.6931471805599453,
'diterapkan': 0.6931471805599453}
第二个结果:

 Result_2 = {k: Dict1[k] for k in sorted(Dict2.keys(), key = lambda x: Dict2[x], reverse = True)[:5] if k in Dict1}

{'setuju': 0.6931471805599453,
 'meningkatkan': 1.0986122886681098,
 'tidak': 1.0986122886681098,
 'kesejahteraan': 1.0986122886681098,
 'untuk': 1.0986122886681098}
试试这个

result={}
对于Dict1.items()中的键1,值1:
对于Dict2.items()中的键2,值2:
如果Dict2[key2]>1:
结果[key1]=Dict1[key1]

您自己尝试过什么?你遇到了什么问题?目前,您的问题看起来很像您要问的,那么是否要为您编写代码?