|
发表于 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
|
|