python - 我不能从我的集合中删除一个日期时间对象?
问题描述
base = datetime.date.today()
dateset = set([base + datetime.timedelta(days=x) for x in range(20)]
for d in dateset:
if d.weekday() == 0:
dateset.discard(d)
如您所见,我想删除任何 aweekday()
为 0 的日期时间对象。
但是上面的代码抛出了错误RuntimeError: Set changed size during iteration
任何帮助深表感谢。
解决方案
您正在迭代一个在运行时会改变其大小的对象,即dateset
在使用dateset.discard(d)
.
获取另一个迭代器,例如for idx in range(len(dateset)):
迭代并dateset
相应地删除项目。