如果它的值为 1,我试图删除字典中键的最后一个字符:
d = {'hours': 1, 'seconds': 30}
for k,v in d.items():
if v == 1:
print(k)
d[k[:-1]] = d.pop(k)
Run Code Online (Sandbox Code Playgroud)
但是,它会一直弹出,直到键剩下 1 个字符为止。在这种情况下,小时应该变成小时时变成了小时。
d = {'hours': 1, 'seconds': 30}
for k,v in list(d.items()):
if v == 1:
print(k)
d[k[:-1]] = d.pop(k)
Run Code Online (Sandbox Code Playgroud)
这应该可以解决问题,因为您正在修改循环中的 dict 并且迭代器正在更改,因此您的代码无法正常工作的原因。它具有不可预测的行为。
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |