84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
如何从迭代器中随机选取一个元素?
random.choice(generaotr) 会提示 TypeError: object of type 'generator' has no len()
random.choice(generaotr)
TypeError: object of type 'generator' has no len()
闭关修行中......
Signature: random.choice(seq),參數應該是一個序列,先把 generator 轉為序列。
Signature: random.choice(seq)
random.choice(list(generator))
可以先快取一定數量的迭代器的值,然後隨機抓取。
sets = list(zip(range(100),generator())) choice = random.choice(sets)[1]
或直接隨機一個整數,然後一直next()到那個位置。
問題應該這樣想:既然使用迭代器,為何要隨機取數?如果迭代器是無限大呢?當然,可轉換成列表另講
Signature: random.choice(seq)
,參數應該是一個序列,先把 generator 轉為序列。可以先快取一定數量的迭代器的值,然後隨機抓取。
或直接隨機一個整數,然後一直next()到那個位置。
問題應該這樣想:既然使用迭代器,為何要隨機取數?如果迭代器是無限大呢?當然,可轉換成列表另講