根据其值替换字典中的键

时间:2019-12-26 17:13:46

标签: python dictionary

我正在尝试删除字典中键的最后一个字符,如果其值为1:

d = {'hours': 1, 'seconds': 30}

for k,v in d.items():
      if v == 1:
        print(k)
        d[k[:-1]] = d.pop(k)

但是,它一直弹出,直到键剩下1个字符为止。在这种情况下,小时数应该变成小时数。

1 个答案:

答案 0 :(得分:5)

d = {'hours': 1, 'seconds': 30}

for k,v in list(d.items()):
  if v == 1:
    print(k)
    d[k[:-1]] = d.pop(k)

这应该可以解决问题,因为您要修改循环中的dict且迭代器正在更改,所以代码无法正常工作的原因。它具有不可预测的行为。