【问题标题】:I dont get why I got "pop from empty list" error in my loop我不明白为什么我的循环中出现“从空列表中弹出”错误
【发布时间】:2021-07-21 14:12:41
【问题描述】:

问题解决了。谢谢大家

【问题讨论】:

  • self.order > [] 显然没有按照您的想法做。 [1, 1] > []True
  • 改为使用while self.order:
  • @DeepSpace 一个空列表不大于自身,因此 OP 收到此错误很奇怪。 [1, 1] > []True,但 [1, 1].pop(0) 不会抛出该错误
  • OP,你能edit 你的问题包括你得到的 exact 输出吗?将您的代码压缩为minimal reproducible example:删除代码中不相关的部分,例如对此处未包含的对象和函数的引用。我怀疑你的一个函数修改了 self.order after 它在循环中,所以 self.order.pop(0) 不再可能。我无法用简单的l = [1, 2, 3, 4, 5]; while l > []: print("Before: ", l, end=""); l.pop(0); print("; After: ", l) 复制您的问题
  • 我们想要您的整个代码。请做一些debugging 并将您的代码压缩为minimal reproducible example

标签: python list loops


【解决方案1】:

如果你想有条件测试 self.order 不应该是空列表。 然后使用条件作为 len(self.order)>0 这应该是合适的,而不是你所拥有的。

【讨论】:

  • 空列表是 python 中的falsy。你不需要检查if len(self.order) > 0if self.order 就可以正常工作
  • 我同意。你在品脱。
  • 但即使我将条件更改为 while self.order。我仍然收到此错误...
猜你喜欢
  • 2022-12-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多