首頁  >  問答  >  主體

python - 如何从迭代器中随机选取一个元素?

如何从迭代器中随机选取一个元素?

random.choice(generaotr) 会提示 TypeError: object of type 'generator' has no len()

阿神阿神2741 天前1239

全部回覆(3)我來回復

  • PHPz

    PHPz2017-04-18 09:32:29

    Signature: random.choice(seq),參數應該是一個序列,先把 generator 轉為序列。

    random.choice(list(generator))

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-18 09:32:29

    可以先快取一定數量的迭代器的值,然後隨機抓取。

    sets = list(zip(range(100),generator()))
    choice = random.choice(sets)[1]

    或直接隨機一個整數,然後一直next()到那個位置。

    回覆
    0
  • 黄舟

    黄舟2017-04-18 09:32:29

    問題應該這樣想:既然使用迭代器,為何要隨機取數?如果迭代器是無限大呢?當然,可轉換成列表另講

    回覆
    0
  • 取消回覆