Python之sort()方法和sorted()函数的区别

类里面的叫做方法,类外面叫做函数

  • sort() 是Python列表的一个内置的排序方法,list.sort() 方法排序时直接修改原列表,返回None;方法sort() 对列表进行永久性排序
  • sorted() 是Python内置的一个排序函数,它会从一个迭代器返回一个排好序的新列表,需要接收,也可直接打印;函数 sorted() 对列表进行临时排序

sort() 只是列表的一个方法,只适用于列表,而sorted() 函数接受一切迭代器,返回一个有序的副本,并且类型总是列表。相比于 sort(),sorted() 使用的范围更为广泛,但是如果不需要保留原列表,sort更有效一点

=========sort()永久性排序,改变原列表============== 
li=['sfdf','dfs','fdsw','tre','yhgfth']
li.sort()
print(li)
['dfs', 'fdsw', 'sfdf', 'tre', 'yhgfth']

==========sorted()临时排序,不改变原列表===============
li=['sfdf','dfs','fdsw','tre','yhgfth']
print(sorted(li))
print(li)
['dfs', 'fdsw', 'sfdf', 'tre', 'yhgfth']
['sfdf', 'dfs', 'fdsw', 'tre', 'yhgfth']
#可以看到li没有改变

=================元组不能用sort()排序=================
li=(78,3,65,34,135)
li.sort()
AttributeError: 'tuple' object has no attribute 'sort'

===============sorted() 可以为元组排序================
li=(78,3,65,34,135)
print(sorted(li))
[3, 34, 65, 78, 135]

你可能感兴趣的:(原创)