【发布时间】:2020-09-08 08:21:54
【问题描述】:
为什么要这样输出?
years = [1998,2000,1998,1987]
x = years
x.sort()
print(x)
print(years) #why not [1998,2000,1998,1987]
输出:
[1987, 1998, 1998, 2000]
[1987, 1998, 1998, 2000]
【问题讨论】:
-
这能回答你的问题吗? stackoverflow.com/questions/2612802/…
-
x = years行将x设置为指向years列表,因此从该点开始它们指向同一个对象(直到您更改它)。所以,当你排序时,你对同一个对象进行排序,当你打印这些变量时,结果是相同的排序数组。 -
可以打印(id(x)),print(id(years)),看地址
-
您也可以使用 x = sorted(years) 因为这会创建一个新的排序列表,而保留原始列表
-
强制链接到Ned Batchelder
标签: python arrays python-3.x sorting