Warum gibt dieser Python-Generator jedes Mal den gleichen Wert zurück?

Hier ist mein Generator:

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

Und hier ist die Ausgabe, wenn ich es nenne:

>>> 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]]

Wenn ich die Anweisung erneut ausführe, erhalte ich etwas anderes als[2, 0] (wegennp.random call), aber der gleiche Wert in alleny.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage