我刚花了一个小时就遇到了以下挫败感,并且
a)想发布它以防其他人遇到同样的问题,并且 b)我很好奇这种行为的基础是什么。
$ e = [{}]*6
$ e
[{}, {}, {}, {}, {}, {}]
$ e[0]['green'] = 'blue'
$ e
[{'green': 'blue'}, {'green': 'blue'}, {'green': 'blue'}, {'green': 'blue'}, {'green': 'blue'}, {'green': 'blue'}]
$ e = [{}, {}, {}, {}, {}, {}]
$ e
[{}, {}, {}, {}, {}, {}]
$ e[0]['green'] = 'blue'
$ e
[{'green': 'blue'}, {}, {}, {}, {}, {}]
基本上,问题是当字典列表使用 [{}]*int 初始化时,尝试通过列表中的索引修改单个字典会修改所有字典。而显式初始化
谢谢