【发布时间】:2018-10-12 13:51:51
【问题描述】:
我不明白为什么在第一个例子中,b 被认为是a 的副本,它会随着a 而改变,但在第二个例子中没有
def bubbleSort(alist):
for passnum in range(len(alist)-1,0,-1):
for i in range(passnum):
if alist[i]>alist[i+1]:
temp = alist[i]
alist[i] = alist[i+1]
alist[i+1] = temp
return alist
a=[3,2,1]
b=a
a=bubbleSort(a)
print(a)
print(b)
输出:
[1, 2, 3]
[1, 2, 3]
a=[3,2,1]
b=a
a=[1,2,3]
print(a)
print(b)
输出:
[1, 2, 3]
[3, 2, 1]
【问题讨论】:
-
这篇文章可能对您有所帮助:Facts and myths about Python names and values,由 SO 资深人士 Ned Batchelder 撰写。
-
顺便说一句,请不要将代码片段用于 Python 代码,它们仅适用于可以在 Web 浏览器中运行的代码:HTML、CSS、JavaScript。
-
提示:在您的第一个示例中,
b不是“a 的副本”——a和b是指向同一个对象的两个名称。
标签: python object bubble-sort