【问题标题】:Get a fixed number of items from a generator [duplicate]从生成器中获取固定数量的项目[重复]
【发布时间】:2013-04-17 18:49:45
【问题描述】:

从生成器中获取固定数量的项目的最有效方法是什么?

我目前所做的是使用ziprange。在这个例子中,我采取 来自生成器的大小为 3 的块。

def f():
  x = 0
  while x < 21:
    yield x
    x += 1

g = f()

while True:
  x = [i for _, i in zip(range(3), g)]
  if not x:
    break
  print x

背景是我使用的数据库为查询结果提供了一个生成器对象。比我用数据填充一个固定大小的 numpy 数组并将其作为一批处理。

【问题讨论】:

    标签: python generator


    【解决方案1】:

    使用itertools.islice:

    import itertools
    
    for elem in itertools.islice(f(), 3):
        print elem
    

    直接进入你的numpy数组:

    my_arr = np.array(itertools.islice(f(), 3))
    

    【讨论】:

      猜你喜欢
      • 2014-07-28
      • 2021-08-31
      • 1970-01-01
      • 2011-03-09
      • 2013-02-10
      • 2018-09-14
      • 2014-11-01
      • 2018-12-13
      • 2018-09-12
      相关资源
      最近更新 更多