python给二维列表赋值存在一个bug,例如:
list = [[False]*5]*4
list[2][3] = True
print(list)
list的结果为:
[[False, False, False, True, False], [False, False, False, True, False], [False, False, False, True, False], [False, False, False, True, False]]
不仅仅是(2,3)位置改为了True,(0,3),(1,3),(3,3)都变成了True。
取值是正常的,但赋值却跟Java语言不通。
list = [[False]*5]*4
list[2][3] = True
print(list[2][3])
结果为True