|
发表于 2020-9-29 21:10:05
|
显示全部楼层
你打印一下内存地址看看,应该和什么存储方式、指向、内存地址之类的有关,就是说你append进的那个最后元素,其实存储的是一个,用的一个内存地址,所以修改也一起修改
我只知道大概时这样,太理论的讲解,要靠版主
snake_body = [[280, 340], [270, 340], [260, 340], [250, 340]]
food = [280, 340]
direction = 'right'
if food == snake_body[0]:
print('0:', snake_body)
print(id(snake_body[-1]))
snake_body.append(snake_body[-1])
print('1:', snake_body)
print(id(snake_body[-1]))
if direction == 'up':
snake_body[-1][-1] += 10
elif direction == 'down':
snake_body[-1][-1] -= 10
elif direction == 'left':
snake_body[-1][0] += 10
elif direction == 'right':
snake_body[-1][0] -= 10
print('2:', snake_body)
print(id(snake_body[-1]))
print(id(snake_body[-2]))
print(id(snake_body[-3]))
0: [[280, 340], [270, 340], [260, 340], [250, 340]]
51996360
1: [[280, 340], [270, 340], [260, 340], [250, 340], [250, 340]]
51996360
2: [[280, 340], [270, 340], [260, 340], [240, 340], [240, 340]]
51996360
51996360
51996200
|
|