RuntimeError: dictionary changed size during iteration
RuntimeError: dictionary changed size during iteration
错误范例:
for k in headerTable.keys():
if headerTable[k] < minSup:
del(headerTable[k])
原因:在遍历过程中对字典进行的操作影响到遍历过程。
解决方法:
1、加上list()
for k in list(headerTable.keys()):
if headerTable[k] < minSup:
del(headerTable[k])
2、使用要遍历的字典的拷贝,这里使用浅拷贝。如果遍历过程对字典的操作较复杂,建议使用深拷贝
headerTableCopy=headerTable.copy() #浅拷贝,拷贝第一层
for k in headerTableCopy.keys():
if headerTable[k] < minSup:
del(headerTable[k])

浙公网安备 33010602011771号