从lis中的字典中查找最高的键值对

2024-05-28 19:33:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从列表中找出值最高的键。我该怎么做呢?顺便说一句,我对编程和python还不熟悉,所以这主要是我自己的练习。在

下面是字典中基本信息的一个示例,我希望能够获得具有最高键的值。在这种情况下,它将返回'Vinnie M'和'Zoey M'

也许有更好的方法来组织这些数据,但是我希望在字典中有更多的信息,比如用户ID、出价时间等等。我还需要能够在不更改代码的情况下添加新用户,这是在另一个函数中处理的,所以不要担心添加新用户的建议,除非我最初的方法有缺陷。在

userList = [
    {'Full Name' : 'Ryan R.', 'Bid Amount' : 4.30},
    {'Full Name' : 'Zoey M.', 'Bid Amount' : 5.20},
    {'Full Name' : 'Max D.', 'Bid Amount' : 3.90},
    {'Full Name' : 'Vinnie M', 'Bid Amount' : 5.20}
    ]

Tags: 数据方法用户name信息示例列表字典
2条回答
>>> userList = [
...     {'Full Name' : 'Ryan R.', 'Bid Amount' : 4.30},
...     {'Full Name' : 'Zoey M.', 'Bid Amount' : 5.20},
...     {'Full Name' : 'Max D.', 'Bid Amount' : 3.90},
...     {'Full Name' : 'Vinnie M', 'Bid Amount' : 5.20}
...     ]
>>> D = {i['Full Name']: i['Bid Amount'] for i in userList}
>>> mx = max(D.values())
>>> [i for i in D if D[i] == mx]
['Vinnie M', 'Zoey M.']

也可以不使用中间产物dict。但似乎是一个不自然的数据结构,除非您可以有重复的全名

^{pr2}$

您可以为此使用operator.itemgetter。。在

import operator
dict =  [
{'Full Name' : 'Ryan R.', 'Bid Amount' : 4.30},
{'Full Name' : 'Zoey M.', 'Bid Amount' : 5.20},
{'Full Name' : 'Max D.', 'Bid Amount' : 3.90},
{'Full Name' : 'Vinnie M', 'Bid Amount' : 5.20}
]`

max(dict.iteritems(), key=operator.itemgetter(1))[0]

相关问题 更多 >

    热门问题