Python不会,有人看吗

img

我想能够比较字典里面相同的键的值,如果id的值相同,那么比较weight的值,谁的weight的值小,就添加它到一个列表里面
主要这个是在一个列表里面有很多个字典

用遍历的方法可以解决

测试一下,行不行?

lst = [{'id':'3','weight':'10','init':'0'},{'id':'3','weight':'4','init':'0'},{'id':'3','weight':'9','init':'0'},{'id':'4','weight':'10','init':'0'},{'id':'4','weight':'6','init':'0'},{'id':'5','weight':'9','init':'0'},{'id':'5','weight':'1','init':'0'},{'id':'5','weight':'11','init':'0'}]

dic = {}

for i in lst:
    if i['id'] in dic:
        if eval(i['weight'])<eval(dic[i['id']]):
            dic[i['id']]=i['weight']
    else:
        dic[i['id']]=i['weight']

new = [i for i in lst if i['id'] in dic and i['weight']==dic[i['id']]]

print(new)