Ben*_*.Sw 4 python dictionary python-3.x
我使用列表使用以下行从列表中的一组项目中查找最大值:x=max(dictionary, key=dictionary.get)
除非字典中的两个或多个值相同,否则这工作正常,它似乎只是完全随机选择其中一个最大值。有没有办法让它打印两个最大值,可能在列表中,例如:dictionary={'A':2,'B':1,'C':2}
它将返回x=['A','C']
>>> dictionary = { 'A': 2, 'B': 1, 'C': 2 }\n>>> maxValue = max(dictionary.values())\n>>> [k for k, v in dictionary.items() if v == maxValue]\n['C', 'A']\n
Run Code Online (Sandbox Code Playgroud)\n\n您还可以使用计数器来获取按 \xe2\x80\x9cmost common\xe2\x80\x9d (最高值)排序的项目:
\n\n>>> from collections import Counter\n>>> c = Counter(dictionary)\n>>> c.most_common()\n[('C', 2), ('A', 2), ('B', 1)]\n
Run Code Online (Sandbox Code Playgroud)\n\n不幸的是,参数n
to 为most_common
您提供了n
最大元素,而不是所有元素都具有最大值,因此您需要手动过滤它们,例如使用itertools.takewhile
:
>>> from itertools import takewhile\n>>> maxValue = c.most_common(1)[0][1]\n>>> list(takewhile(lambda x: x[1] == maxValue, c.most_common()))\n[('C', 2), ('A', 2)]\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
3805 次 |
最近记录: |