计算字典中连续键元素的差值后如何得到键值对
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]]}
我正在研究字典和列表。这是我的输入数据。
{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]]}