0

我有一个问题,在外循环结束后,两个字典都指向相同的值。我有这样的代码:

for state in states:
    probab_dist = numpy.random.dirichlet(some args..).flatten()
    for i, j in zip(word, range(len(word))):
        state.dict[i] = probab_dist[j]

我在第 2 行之后插入了一条打印语句,以查看 dirichlet 函数是否每次都返回相同的值。它没有,并且在内部循环退出后打印每个状态的字典的值确实表明,首先每个状态的字典都有自己的值。

我认为这可能是深拷贝与浅拷贝的问题,所以我将第 4 行替换为state.dict[i] = copy.deepcopy(probab_dist[j],但这并没有改变任何东西。

有什么想法我可以尝试下一步吗?

4

0 回答 0