当Python中的迭代器为空时如何获取None

时间:2019-05-03 11:09:01

标签: python iterator

我在Python中实现了一个生成器,问题是当生成器为空时,我想返回“ None”:

data Wrapper = Wrapper
  { x :: X
  , i :: Int
  }
  deriving (Generic, HasX, Sample)

我得到一个错误:

  

StopIteration

2 个答案:

答案 0 :(得分:0)

您的问题是next(iter, None)。您循环永无止境。它可以正常工作6次,然后开始产生None。当您收到错误消息时。

删除None,以便引起StopIteration并导致外循环结束

答案 1 :(得分:0)

list(permute(['b', 'a', 'c']))

将返回生成器输出的列表。

但是,您的生成器似乎返回了无限循环。