我正在尝试删除字典中键的最后一个字符,如果其值为1:
d = {'hours': 1, 'seconds': 30}
for k,v in d.items():
if v == 1:
print(k)
d[k[:-1]] = d.pop(k)
但是,它一直弹出,直到键剩下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且迭代器正在更改,所以代码无法正常工作的原因。它具有不可预测的行为。