如何使用python中另一个字典的值筛选字典?
案例1:我想使用Dict2的值过滤Dict1,例如:使用Dict2的值过滤值>1如何使用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,
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]
您自己尝试过什么?你遇到了什么问题?目前,您的问题看起来很像您要问的,那么是否要为您编写代码?