您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python:从字典中获取具有最小值的键,但多个最小值

Python:从字典中获取具有最小值的键,但多个最小值

一个简单的选择是首先确定最小值,然后选择映射到该最小值的所有键:

min_value = min(d.itervalues())
min_keys = [k for k in d if d[k] == min_value]

对于Python 3,请使用d.values()代替d.itervalues()

这需要两次通过字典,但是无论如何应该是最快的选择之一。

使用储层采样,您可以实施单次通过方法,以随机选择其中一项:

it = d.iteritems()
min_key, min_value = next(it)
num_mins = 1
for k, v in it:
    if v < min_value:
        num_mins = 1
        min_key, min_value = k, v
    elif v == min_value:
        num_mins += 1
        if random.randrange(num_mins) == 0:
            min_key = k

写下这段代码后,我认为该选项具有相当的理论意义……:)

python 2022/1/1 18:43:48 有314人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶