【问题标题】:How do I find the length of list in generator. (Python) [duplicate]如何在生成器中找到列表的长度。 (Python)[重复]
【发布时间】:2016-05-27 03:15:33
【问题描述】:

我有这个生成器,它返回一个数字列表。

li=tile_generator(im)

我需要找到列表“li”的长度,因为我需要检查阈值。
我用length = sum(1 for i in li)。它返回列表的长度,但生成器中的元素已用尽,因为它是生成器。
我需要在不耗尽生成器中的元素的情况下返回长度。

【问题讨论】:

标签: python generator


【解决方案1】:

你不能那样做。不过,你可以先把它变成一个列表:

li = list(tile_generator(im))
length = len(li)

【讨论】:

  • 是的,但我关心的是使用生成器,因为我想在阅读时释放元素。如果我将其更改为列表,那么我将有不必要的内存负载。
  • 我的意思是,如果不耗尽它,你就无法找到发电机的长度。但是,我可以建议您可能正在寻找enumerate()。例如,您可以说for i, item in enumerate(tile_generator(im)): 并将您想要的任何代码放在那里。完成for 循环后,i 将与生成器的长度减一相同。但是,如果您需要 before 使用生成器的长度,那么我的回答是唯一的方法。
猜你喜欢
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-29
  • 1970-01-01
  • 2016-04-01
  • 1970-01-01
相关资源
最近更新 更多