是否可以编写一行代码来对列表a进行排序,但不是浅拷贝列表B

2024-06-16 13:36:42 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有可能,给定这些命令,编写一行代码来排序mylistA,而不是mylistB

mylistA = [5,23,7,-1]
mylistB = mylistA

Tags: 代码命令排序mylistbmylista
2条回答

B不是一个浅表副本,它是指向同一列表的第二个变量—因此,如果对其进行“就地”排序,您将修改两个变量所指向的值。要制作真正的浅拷贝,请使用切片或列表构造函数:

a = [5,23,7,-1]
b = a[:]    # or list(a)

在python中,可以将所有变量都看作“指针”。你知道吗

您需要一个新列表,但是内置的sorted总是生成一个新列表,所以。。。你知道吗

mylistA = [5,23,7,-1]
mylistB = mylistA
mylistA = sorted(mylistA)

我想我也应该指出,我们可以很好地在2(!)线路:

mylistB = [5,23,7,-1]
mylistA = sorted(mylistB)

是啊!你知道吗

相关问题 更多 >