【发布时间】:2019-10-13 16:48:14
【问题描述】:
这可能是一个非常基本的问题,但我不知道我必须搜索什么才能找到答案:
我有这个代码:
list = [[0,1],[0,2],[1,3],[1,4],[1,5]]
list.append(list[0])
for i in list:
i.append(0)
print(list)
此列表稍后将用作曲线的坐标。我需要在最后复制第一个坐标以获得闭合曲线。
如果我想为列表中的每个坐标添加第三个值,则列表中的第一项和最后一项将被迭代两次:
[[0, 1, 0, 0], [0, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0], [0, 1, 0, 0]]
我猜它们具有相同的内存地址,因此附加函数应用于此地址的同一对象,一次用于第一个索引,一次用于最后一个索引。
这种现象叫什么?获得这样的列表的最简单方法是什么:
[[0, 1, 0], [0, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0], [0, 1, 0]]
感谢您的帮助
【问题讨论】:
标签: python python-3.x list memory-management list-comprehension