84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
如何从迭代器中随机选取一个元素?
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), le paramètre doit être une séquence, convertissez d'abord le générateur en séquence.
Signature: random.choice(seq)
random.choice(list(generator))
Vous pouvez d'abord mettre en cache un certain nombre de valeurs d'itérateur, puis les récupérer de manière aléatoire.
sets = list(zip(range(100),generator())) choice = random.choice(sets)[1]
Ou randomisez directement un entier puis next() à cette position.
La question doit être pensée comme ceci : puisque des itérateurs sont utilisés, pourquoi devons-nous sélectionner des nombres au hasard ? Et si l'itérateur était infini ? Bien sûr, cela peut être converti en liste et discuté séparément
Signature: random.choice(seq)
, le paramètre doit être une séquence, convertissez d'abord le générateur en séquence.Vous pouvez d'abord mettre en cache un certain nombre de valeurs d'itérateur, puis les récupérer de manière aléatoire.
Ou randomisez directement un entier puis next() à cette position.
La question doit être pensée comme ceci : puisque des itérateurs sont utilisés, pourquoi devons-nous sélectionner des nombres au hasard ? Et si l'itérateur était infini ? Bien sûr, cela peut être converti en liste et discuté séparément