使用python的sort函数时遇到了问题。
>>>d = [23,45,67,5,4,23,45,89]
>>>d[5]
23
>>>g = d
>>>g.sort()
>>>d[5]
45
有什么办法,我可以在不打扰d的情况下进行排序。
答案 0 :(得分:6)
答案 1 :(得分:2)
在Python 列表中是可变的,因此,要将此更改从g = d
修复为g = d[:]
换句话说,在执行g = d
时,g
指向d
执行的相同内存地址,并且通过修改g
,d
也会获得变化。
为了避免这种情况,请执行d
复制d[:]
,将d
的整个内存复制到新的内存地址。
此外,如果您要创建d
子列表的副本,您应d[i:j]
创建一个新列表,其第一个元素是i-th
元素d
,最后一个是(j-1)-th
元素。
记住数字,字符串和元组是不可变的,列表和字符串是可变的。 有关详情,请参阅:http://ilian.i-n-i.org/python-interview-question-and-answers/#sthash.2WW5LTOA.dpuf