sr = [12,13,4]
thre = 1
kaju = []
for p in range(len(sr)):
sr[p] -= thre
kaju.append(sr)
print sr
print kaju
结果显示为:
[11, 13, 4]
[11, 12, 4]
[11, 12, 3]
[[11, 12, 3], [11, 12, 3], [11, 12, 3]
我不知道为什么sr和kaju不一样
答案 0 :(得分:0)
列表由Python中的引用传递。因此,当您将sr
附加到kaju
时,您只是将另一个引用添加到同一列表中。因此,您的print语句反映了每次迭代时对sr
的更改,但kaju
只包含对同一列表的一堆引用。
如果希望kaju
的元素反映每次迭代的更改,则必须在每次迭代时复制sr
的值,这可以使用内置的{{1}完成功能
list()
<强>输出强>:
for p in range(len(sr)):
sr[p] -= thre
kaju.append(list(sr))
print sr
print kaju
答案 1 :(得分:0)
因为每次调用追加时都会在java.util.regex.PatternSyntaxException: Unclosed character class
near index 7
[^\],\s*
^
附加整个列表。您可能只想追加sr