引言
Python列表在处理数据过程中经常需要反转数据或者对列表中的数据进行排序操作。两种排序和反转函数结果相同但是内部的实现机理有所不同,本文主要是强调如何区分相同结果下的不同内存占用问题。
目录
一、sort()和sorted()
(1) sort()
1.语法
list.sort(key,reverse)
sort()函数是列表对象的方法, key为可选参数,传入一个lambda函数指定列表元素按照什么标准进行比较排序,默认值为None,表示按照元素本身排序。reverse为可选参数指定是升序还是降序排列,默认值为False。
2.示例代码
#按照元素本身升序排列
data = [6,2,3,5,4]
data.sort()
print(data) #[2, 3, 4, 5, 6]
#按照元素本身降序排列
data = [6,2,3,5,4]
data.sort(reverse=True)
print(data) #[6, 5, 4, 3, 2]
#按照元素绝对值排序
data = [6,2,-3,-5,4]
data.sort(key=lambda x:abs(x))
print(data) #[2, -3, 4, -5, 6]
(2) sorted()
1.语法
sorted()函数为python内置函数,返回排序后的新列表。
2.示例代码
data = [6,2,3,5,4]
sorted_data = sorted(data)
print(sorted_data) #[2, 3, 4, 5, 6]
#先按照主要规则奇偶排序分成两部分,再按照次要规则数据元素大小排序
data = [6,2,3,5,4]
sorted_data = sorted(data,key=lambda x:(x%2,x))
print(sorted_data) #[2, 4, 6, 3, 5]