84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
如何从迭代器中随机选取一个元素?
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()到那个位置。
问题应该这样想:既然使用迭代器,为何又要随机取数?如果迭代器是无限大呢?当然,可转换成列表另讲