我一直在努力研究如何获取与特定值差异最小的字典的键(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/