Python 列表的易变性

Python 列表的易变性,python,list,Python,List,当一个列表被排序时,可能是按升序数字顺序(对于仅整数列表)或按字母顺序(对于仅字符串列表),考虑到列表中项目的索引号已更改,我是否可以说该列表发生了变化? 例如: x = ["Alexa", "Siri", "Cortana"] x_sorted = sorted (x) print (x_sorted) # ["Alexa", "Cortana", "Siri"] print (x) # ["Alexa", "Siri", "Cortana"] 这取决于你如何分类。如果您的初始列表是 >

当一个列表被排序时,可能是按升序数字顺序(对于仅整数列表)或按字母顺序(对于仅字符串列表),考虑到列表中项目的索引号已更改,我是否可以说该列表发生了变化? 例如:

x = ["Alexa", "Siri", "Cortana"]
x_sorted = sorted (x)
print (x_sorted)
# ["Alexa", "Cortana", "Siri"]
print (x)
# ["Alexa", "Siri", "Cortana"]

这取决于你如何分类。如果您的初始列表是

>>> x = ["Alexa", "Siri", "Cortana"]
使用
sorted
将创建一个新列表,并保持原始列表不变

>>> sorted(x)
['Alexa', 'Cortana', 'Siri']
>>> x
['Alexa', 'Siri', 'Cortana']
但是,
sort
方法将对列表进行适当的排序,因此在执行此操作时会对列表进行变异

>>> x.sort()
>>> x
['Alexa', 'Cortana', 'Siri']

不过,您并没有改变列表,而是创建了一个副本,其中的项目顺序不同。如果你做了
x.sort()
,那将是x的变异。