Python 根据条件比较字典键

lor*_*ock 1 python

我有以下 python 字典,我对其进行了排序,以便找到它们的差异

k={0: 2, 1: 1, 3: 2, 4: 1, 5: 1, 6: 1}
Run Code Online (Sandbox Code Playgroud)

现在我想以这样的方式比较字典键,如果字典键差等于1,我想将字典的两个值相加。我尝试了 next 和 Iter 的方法,但遗憾的是我没有得到预期的 Item。

字典键的范围只有0-100

如果可能的话,需要在数组 [3,3,2,2] 中输出,即 0 和 1 的差是 1,因此 0 和 1 的值是 3(1 和 0 值的和),3,4 也是如此

小智 5

如果我正确理解这个问题:

k={0: 2, 4: 1, 1: 1, 6: 1, 3: 2, 5: 1}
keys = sorted(k.keys())  # [0, 1, 3, 4, 5, 6]

result = []
for i in range(1, len(keys)):
    if keys[i] - keys[i-1] == 1:
        result.append(k[keys[i]] + k[keys[i-1]])

print(result)  # [3, 3, 2, 2]
Run Code Online (Sandbox Code Playgroud)

请记住,如果不是所有字典键都是数字,上面的代码将不起作用 - 你必须TypeError排队keys = sorted(k.keys())