我在遍历python列表中的字典值时遇到麻烦。
例如:
list1 = [{'id': 1, 'score': 2}, {'id': 2, 'score': 1}]
我想比较两个字典的分数并获取id
得分最高的
谢谢
答案 0 :(得分:3)
您可以将内置的max
函数与定义的键函数一起使用:
list1 = [{'id': 1, 'score': 2}, {'id': 2, 'score': 1}]
result = max(list1, key = lambda x : x['score'])['id']
print(result)
输出:
1
答案 1 :(得分:1)
您可以只使用max()
和key属性来指示您要比较分数:
from operator import itemgetter
list1 = [{'id': 1, 'score': 2}, {'id': 2, 'score': 1}]
item = max(list1, key=itemgetter('score') )
# item is: {'id': 1, 'score': 2}
item['id']
结果:
1
答案 2 :(得分:0)
list1 = [{'id': 1, 'score': 2}, {'id': 2, 'score': 1}]
list1.sort(key=lambda x:x['score'],reverse=True)
sol = list1[0]['id']
print(sol)
# output 1
答案 3 :(得分:0)
>>> list1 = [{'fruit': 'apple', 'calories': 137}, {'fruit': 'banana', 'calories': 254}, {'fruit': 'orange', 'calories': 488}]
>>> list1
[{'fruit': 'apple', 'calories': 137}, {'fruit': 'banana', 'calories': 254}, {'fruit': 'orange', 'calories': 488}]
>>> for dictionary in list1:
print(dictionary)
{'fruit': 'apple', 'calories': 137}
{'fruit': 'banana', 'calories': 254}
{'fruit': 'orange', 'calories': 488}
>>> dictionary1 = list1[0]
>>> dictionary1
{'fruit': 'apple', 'calories': 137}
>>> for key in dictionary1:
print(key)
fruit
calories
>>> for value in dictionary1.values():
print(value)
apple
137
>>> for items in dictionary.items():
print(items)
('fruit', 'orange')
('calories', 488)
这可以清除一切吗?
答案 4 :(得分:0)
尝试一下:
list1 = [{'id': 1, 'score': 2}, {'id': 2, 'score': 1}]
print(max(list1, key=lambda x: x['score'])['id'])
输出:
1