计算字典中连续键元素的差值后如何得到键值对

How to get key-value pair after computing the difference of consecutive key elements in dictionary

我正在研究字典和列表。这是我的输入数据。

{19: [[2, 1796]], 24: [[4, 1792]], 273: [[46, 1774]], 275: [[46, 1773]], 494: [[3, 1793]], 499: [[2, 1796]]}

我想计算两个连续键值的差值。 (首先我比较 19、24。然后我比较 273,275,依此类推)。如果相差<=5,那么我要获取最低键的键值对。

所以,我的输出看起来像这样

{19: [[2, 1796]], 273: [[46, 1774]], 494: [[3, 1793]]}

我尝试使用 lambda 函数进行字典理解,但出现逻辑错误。

您只需几行即可实现。创建一个新的空字典并在每次检查键之间的差异时循环填充它:

dic = {19: [[2, 1796]], 24: [[4, 1792]], 273: [[46, 1774]], 275: [[46, 1773]], 494: [[3, 1793]], 499: [[2, 1796]]}

new_dic = dict()
for k,v in dic.items():
    if not(new_dic) or k-list(new_dic.keys())[-1] > 5:
        new_dic[k] = v

print(new_dic)

输出:

{19: [[2, 1796]], 273: [[46, 1774]], 494: [[3, 1793]]}