python - 我无法从集合中删除日期时间对象?

标签 python datetime set list-comprehension python-datetime

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)

如您所见,我想删除所有 weekday() 为 0 的日期时间对象。

但是上面的代码抛出错误RuntimeError: Set changed size during iteration

非常感谢任何帮助。

最佳答案

您正在迭代一个对象,该对象在运行时会改变它的大小,即您在 dateset 上迭代,同时使用 dateset.discard(d) 在循环中丢弃其中的项目.

获取另一个迭代器,例如 for idx in range(len(dateset)): 以迭代并相应地从 dateset 中删除项目。

关于python - 我无法从集合中删除日期时间对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59177616/

相关文章:

c# - 在 C# 中使用 RegEx 解析多种日期格式

ios - 如何创建一组自定义对象 (Swift)?

python - 从一年中的第几天获取一天?

python - 将列表转换为集合会改变元素的顺序吗?

c# - 给定两组数字,从每组数字中找出总和相等的最小集合

python - 在不计算整个句子的情况下估计给定句子的标记概率/logits

python - Python 中列表值的最大和最小上限

python - 如何修复 google colab 上的 cuda 运行时错误?

python - 批量插入数据库唯一代码

python - 我应该如何在 Python 中打印特定时区的时间?