python - 字典分解并创建具有相同值的新字典
问题描述
我有一本字典myDict
{'1': 5, '2': 13, '3': 23, '4': 17}
我正在使用这段代码,这对我很有帮助,以便找到myDict
最接近的键/值targetVal
answer = key, value = min(myDict.items(), key=lambda (_, v): abs(v - targetVal))
假设targetVal
,返回14
:answer
('2': 13)
我现在需要做的是处理myDict
. 例如,如果myDict
是现在:
{'1': 5, '2': 13, '3': 23, '4': 13}
我需要那些带有 value 的键/值对13
。如果代码(上面)在 中找到最接近的值myDict
,并且该值恰好出现不止一次,我想创建一个新字典。在这种情况下,answer
将返回:
{'2': 13, '4': 13}
answer
当最接近的值出现不止一次时,是否可以更新发现的方式来解释实例?
解决方案
首先找到最小值,然后过滤您的dict
.
>>> d = {'1': 5, '2': 13, '3': 23, '4': 13}
>>> target = 13
>>> min_ = min(d.itervalues(), key=lambda v: abs(v - target))
>>> {k:v for k,v in d.iteritems() if v == min_}
{'2': 13, '4': 13}
推荐阅读
- linux - 如何使用 Linux 以 MonthYear 格式(December2020)获取上个月和上一年
- javascript - 如何在 div 中垂直居中内容?
- docker - 如何在 Docker-in-Docker 容器之间重新共享卷?
- php - 当用户在 laravel 8 中注册时,我如何将通知电子邮件发送到参考电子邮件
- proxy - 如何按百分比分配我的流量?
- c++ - 将 QML TypedArray 发送到 C++
- javascript - 通过删除负面的lookbehind使正则表达式Safari兼容
- django - 此处不允许使用目录索引。如何解决这个问题?
- visual-studio - 通过 malloc 请求 8MB 堆内存,但未分配
- angular - 尝试在新选项卡中打开带有查询参数的 URL 时,角度路由不起作用