我正在通过解决项目euler目前的问题来练习我的编程技巧,现在我遇到了一些(在我看来)Python上的奇怪行为.
当我做:
list = [[1]]*20
Run Code Online (Sandbox Code Playgroud)
我按预期获得了包含元素1的20个列表的列表.但是,当我想在此列表中向第三个元素添加2时,我会按如下方式执行此操作:
list[3].append(2)
Run Code Online (Sandbox Code Playgroud)
但是,这会更改列表中的所有元素.即使我绕道而行,例如:
l = list[3]
l.append(2)
list[3] = l
Run Code Online (Sandbox Code Playgroud)
我的所有元素都改变了.任何人都可以请告诉我如何做到这一点并获得如此输出:
[[1], [1], [1], [1, 2], [1] .... [1]]
Run Code Online (Sandbox Code Playgroud)
提前致谢.