我到处找它给我的错误,但我不太明白。他们用for k, v in dbdata.items
做了一些事情,但这对我也不起作用,它给了我其他的错误。在
好吧,我想删除多个项目。在
tskinspath = ['1', '2']
#
dbdata = {}
dbdata['test'] = {}
dbdata['test']['skins_t'] = {}
# Adds the items
dbdata['test']['skins_t']['1'] = 1
dbdata['test']['skins_t']['2'] = 0
dbdata['test']['skins_t']['3'] = 0
dbdata['test']['skins_t']['4'] = 0
# This doesn't work
for item in dbdata["test"]["skins_t"]:
if item not in tskinspath:
if dbdata["test"]["skins_t"][item] == 0:
del dbdata["test"]["skins_t"][item]
# exceptions.RunetimeError: dictonary changed size during iteration
不要迭代字典,而是迭代
dict.items()
:在py3.x上使用
list(dbdata["test"]["skins_t"].items())
。在备选方案:
^{pr2}$错误消息显示:您不应该修改正在迭代的字典。试试看
这样您就可以迭代一个包含
dbdata['test']['skins_t']
中所有键的集合。在由于问题细节与问题无关,如果您正在寻找从给定的
dict
中删除多个键的解决方案,请使用此片段另外,您可以通过理解创建一个新的
^{pr2}$dict
。在相关问题 更多 >
编程相关推荐