根据特定键的值从python字典中提取键值对

问题描述 投票:-1回答:2

我有一个字典列表或列表字典,d1和d2如下。

d1 = [{'A':1, 'B':2, 'score':1},{'A':11, 'B':22, 'score':2},{'A':111, 'B':2222, 'score':3}]
d2 = {'A':[1,11,111], 'B':[2,22,222], 'score':[1,2,3]}

我需要按键的值“过滤”字典。例如,我需要“A”和“B”的值,其中得分最高。我想要的是:

{'A':111, 'B':2222}

我可以做的一种方法是将字典列表转换为pandas数据帧,过滤行并转换回字典。但那真是效率低下......

非常感谢您提前获得建议。

python
2个回答
1
投票

这样的事怎么样?

d1 = [{'A':1, 'B':2, 'score':1}, {'A':11, 'B':22, 'score':2},{'A':111, 'B':2222, 'score':3}]
d2 = {'A':[1,11,111], 'B':[2,22,222], 'score':[1,2,3]}

a = []
for i in d1:
    a.append(i['score'])

b = max(a)

for i in d1:
    if i['score'] == b:
        c = i
        del c['score']

print(c)
(xenial)vash@localhost:~/python/stack_overflow$ python3.7 sent_find.py 
{'A': 111, 'B': 2222}

0
投票

然后将d1转换为d2样式

idx=d2['score'].index(max(d2['score']))

_new = {'A':d2['A'][idx], 'B': d2['B'][idx]}

© www.soinside.com 2019 - 2024. All rights reserved.