python - 如何从迭代器中随机选取一个元素?
阿神
阿神 2017-04-18 09:30:29
0
3
1306

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

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

阿神
阿神

闭关修行中......

全部回覆(3)
PHPzhong

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

random.choice(list(generator))
左手右手慢动作

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

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

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

黄舟

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板