Python:查找字典的key[value]与其他值的差异并返回差异最小的id

标签 python loops dictionary key

我一直在努力研究如何获取与特定值差异最小的字典的键(id)。
例如,

我有一本类似的字典,

dummy_w = {'Time': 1006120000,'T_id' : ''} 

以及以下内容,

dummy_R001 = {'Filename':"home/abc/de.csv",'Time':1006090000,'t_id':'x'}   
dummy_R002 = {'Filename':"home/abc/df.csv",'Time':1006100000,'t_id':'y'}  
dummy_R003 = {'Filename':"home/abc/d.csv",'Time':1026030000,'t_id':'z'}  
dummy_R004 = {'Filename':"home/abc/ef.csv",'Time':1026080000,'t_id':'p'}  
dummy_R005 = {'Filename':"home/abc/f.csv",'Time':1026120000,'t_id':'q'}  

我想根据五个字典(dummy_R001 到 _R005)时间的时间值的差异,为这个 dummy_w 分配 T_id。

我想分配具有最小绝对值(时间差)的那个。

在这种情况下,分配给 dummy_w[T_id] 的 id 应为“y”。

如有任何建议,我们将不胜感激。谢谢。

最佳答案

您可以使用单行代码来迭代所有 'Time' 值,计算 abs() 差异,并获取 min( ) 差异。然后将其分配给dummy_w['T_id']:

min_diff = min((abs(dummy_w['Time']-d['Time']),d['t_id']) for d in [dummy_R001,dummy_R002,dummy_R003,dummy_R004,dummy_R005])
# (20000, 'y')

dummy_w['T_id'] = min_diff[1]
# {'T_id': 'y', 'Time': 1006120000}

注意,我不确定 dummy_R001 等来自哪里,但考虑一下,您可能最好从嵌套字典开始,其中这些是键而不是变量名称。

关于Python:查找字典的key[value]与其他值的差异并返回差异最小的id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42221056/

相关文章:

python - pip3 psutil无法安装较新版本

perl - 在 Perl 中循环两个日期的最佳方式是什么?

javascript - for 循环中出现意外标记错误,为什么?

Python3 : How to convert plain html into nested dictionary based on level of `h` tags?

c# - 查询列表字典

python - 使用 Python 将字符串中的字符转换为多个字符

Python在包内添加单元测试

Python Popen - 环境 - ffmpeg 崩溃

python - 查询30天活跃用户的Google Analytics(分析)API

c++ - 遍历右值容器