python-sort&sorted区别

  • sort(cmp=None, key=None, reverse=False)
  • sorted(iterable, cmp=None, key=None, reverse=False
区别:
  • sort是容器的函数,用List的成员函数sort进行排序
  • sorted是Python的内建函数相同的参数,用built-in函数sorted进行排序
  • sorted(iterable,key=None,reverse=False),返回新的列表,对所有可迭代的对象均有效
  • sort(key=None,reverse=False) 就地改变列表 reverse:True反序;False 正序
    注释:类似深浅拷贝的意思
1、基础排序:
  • sorted:不改变原来列表
a=[1,3,2,7,-2]
b=sorted(a)
print(a)    ==>[1, 3, 2, 7, -2]
print(b)    ==>[-2, 1, 2, 3, 7]
  • sort:改变原来列表
a=[1,3,2,7,-2]
b=a.sort()
print(a)    ==>[-2, 1, 2, 3, 7]
print(b)    ==>None
2、key参数:lambda函数使用
student=[
    ('lily','a',20),
    ('john','c',12),
    ('kitty','b',22)
]
result=sorted(student,key=lambda age:age[2])    #切片
print(result)    ==>[('john', 'c', 12), ('lily', 'a', 20), ('kitty', 'b', 22)]

注释:或者用Operator模块函数也可以

3、key参数:lambda函数使用,按照value排序
b = {'a':1,'b':3,'c':2}
ee = sorted(b, key=lambda x:b[x])
print(ee)        ==> ['a', 'c', 'b']

你可能感兴趣的:(python-sort&sorted区别)