¿Por qué este generador de Python devuelve el mismo valor cada vez?
Aquí está mi generador:
import numpy as np
def fun():
state = [1, 2]
for i in range(10):
for j, var in enumerate(state):
next_st = np.random.randint(0, 3)
state[j] = next_st
yield state
Y aquí está el resultado, cuando lo llamo:
>>> g = fun(); y = [x for x in g]; y
[[2, 0],
[2, 0],
[2, 0],
[2, 0],
[2, 0],
[2, 0],
[2, 0],
[2, 0],
[2, 0],
[2, 0]]
Si ejecuto la declaración nuevamente, obtengo algo diferente a[2, 0]
(debido anp.random
llamada), pero el mismo valor en todosy
.