2024-09-29 04:18:22 发布
网友
假设我有一个字典,它包含不同键的多个最大值。我试着用密码:
taste = {"Mussels": 4, "Limpets": 4, "Prawn": 2, "Plankton":1} print(max(taste, key=taste.get))
但它只给我贻贝或帽贝,取决于哪一个先到。我尝试设置最高值,然后迭代我的键,对于每个键,我的值如下:
但这似乎行不通,因为你不能像我字典里的值那样通过整数进行交互。那么,最干净、最简单的方法是什么
我会这样做:
highest_value = max(taste.itervalues()) print [key for key, value in taste.iteritems() if value == highest_value]
你可以使用列表理解。在
>>> taste = {"Mussels": 4, "Limpets": 4, "Prawn": 2, "Plankton":1} >>> highest = max(taste.values()) >>> [k for k, v in taste.items() if v == highest] ['Limpets', 'Mussels']
或者
由于您有多个值是集合的最大值,所以您需要在如何过滤出具有相同值的所有关键点时稍微聪明一点。在
这更像是一个排序操作,而不是max操作。在
>>> taste = {"Mussels": 4, "Limpets": 4, "Prawn": 2, "Plankton":1} >>> ordered_by_rating = sorted(list(taste.items()), key=lambda x: x[1], reverse=True) >>> top_rating = max(ordered_by_rating, key=lambda x: x[1])[1] >>> only_top = [x[0] for x in filter(lambda x: x[1] == top_rating, ordered_by_rating)] >>> only_top ['Mussels', 'Limpets']
通过减少必须经过的循环数,可以压缩上述内容:
我会这样做:
你可以使用列表理解。在
或者
^{pr2}$由于您有多个值是集合的最大值,所以您需要在如何过滤出具有相同值的所有关键点时稍微聪明一点。在
这更像是一个排序操作,而不是max操作。在
通过减少必须经过的循环数,可以压缩上述内容:
^{pr2}$相关问题 更多 >
编程相关推荐