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



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

{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]]}

相关内容