【发布时间】:2021-11-11 13:28:25
【问题描述】:
我在python 的字典中有以下数据。
我面临的问题是空字符串作为字典中的键和值。
data = {'id': '213', 'first_name': 'john', 'last_name': 'doe', '': ''}
我的目标是删除空字符串key 并创建一个没有它的新字典
所以我尝试了:
from copy import deepcopy
for x, y in data.items():
if x == "":
del data[x]
new_data = deepcopy(data)
print(new_data)
但由于某种原因,我收到以下错误
...
for x, y in data.items():
RuntimeError: dictionary changed size during iteration
我错过了什么吗?
【问题讨论】:
-
为什么要使用循环?
if "" in data: del data[""]- 完成。 -
您因未阅读错误消息而遗漏了某些内容。当你删除一个字典元素时,你正在改变字典的大小,你在迭代它时不应该这样做。你可以直接说
del data[""],不用循环。 -
你为什么想要一本新字典而不是仅仅从你现有的字典中删除该项目?
-
@don'ttalkjustcode 伙计,我犯了一个错误,我猜我在 javascript 上花了太多时间
标签: python python-3.x dictionary