我有一个带有许多key:value对的python字典。其中一些键包含句点.
,如下所示:
record = {"a.a":1, "b..b":2, "c......":3, ".d.d.d":4, ".e.e.e.":5}
现在,我想删除此词典中所有键的所有句点。为此,我有以下代码:
for property in record:
record[property.translate({ord('.'): None})] = record.pop(property)
但是,我最终得到的是:
{'b..b': 2, 'eee': 5, 'aa': 1, 'c': 3, 'ddd': 4}
请注意未更改的b..b
。
为什么会这样?如果我再次调用相同的代码块,则会删除多余的句点 。
答案 0 :(得分:2)
您在这里所做的是在迭代字典时更改字典,这太不好了。
{k.replace('.', ''): v for k, v in record.items()}
会做得很好。