内置函数----sorted

内置函数----sorted

对List、Dict进行排序,Python提供了两个方法
对给定的List L进行排序,
方法1.用List的成员函数sort进行排序,在本地进行排序,不返回副本    (在原始List基础上进行排序,不生成新的List)
方法2.用built-in函数sorted进行排序(从2.4开始),返回副本,原始输入不变 (原始List不变,生成一个排序好的新的List)

l = [1,-4,6,5,-10]
print(l)
l.sort(key = abs)   # 在原列List的基础上进行排序,原始List顺序发生变化
print(l)

执行结果:
[1,-4,6,5,-10]
[1,-4,5,6,-10]
方法1 用list的sort()方法排序
 
l = [1,-4,6,5,-10]
print(sorted(l))
print(l)
print(sorted(l,key=abs,reverse=True))      # 生成了一个新列表 不改变原列表 占内存


执行结果
[-10, -4, 1, 5, 6]
[1, -4, 6, 5, -10]
[-10, 6, 5, -4, 1]
方法2:用内置sorted()函数排序

 

 

--------------------------------sorted---------------------------------------

sorted(iterable, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.

A custom key function can be supplied to customise the sort order, and the
reverse flag can be set to request the result in descending order.


-----------------------------------------------------------------------------
参数说明:
iterable:是可迭代类型;
key:传入一个函数名,函数的参数是可迭代类型中的每一项,根据函数的返回值大小排序;
reverse:排序规则. reverse = True  降序 或者 reverse = False 升序,有默认值。
返回值:有序列表

 

 

例:
列表按照其中每一个值的绝对值排序
l1 = [1,3,5,-2,-4,-6]
l2 = sorted(l1,key=abs)
print(l1)
print(l2)
用sorted函数将列表按照绝对值排序

 列表按照每一个元素的len排序

l = [[1,2],[3,4,5,6],(7,),'123']
print(sorted(l,key=len))
用sorted函数将列表按照每一个元素的长度排序

 

posted @ 2018-11-14 02:04  卖菜大叔  阅读(26)  评论(0)    收藏  举报