Python3中sort()和sorted()的区别和用法

1、sort()函数

    sort是对于列表类型的排序函数,函数原型为:L.sort(key=None, reverse=False),该方法没有返回值,是对列表的就地排序

  • key-- 是指用来比较的关键字,可以说是列表元素的一个权值。key一般用来接受一个函数(或者匿名函数),这个函数只接受一个元素,并返回其权值
  • reverse-- 是否逆序排列(reverse默认为False,sort函数默认从小到大排序。如果令reverse=True,那么就会从大到小排序)
phone = ['HuaWei','Vivo','Oppo','Meizu','Iphone','Mi']

phone.sort()    # 默认根据第一个字母进行排序
print(phone)

phone.sort(key = lambda s:s[-1]) # 根据最后一个字母从小到大排序
print(phone)

# 根据最后一个字母排序,并且从大到小排序
phone.sort(key = lambda s:s[-1],reverse = True)
print(phone)

#定义一个函数
def takeStr(s):
    return s[1]

phone.sort(key = takeStr)    #按照第2个字母进行排序
print(phone)

num = [5,4,9,1,0,2,6,3,7,8]
print('原序列为:')
print(num)
num.sort()
print('将序列从小到大排序为:')
print(num)
num.sort(reverse = True)
print('将序列从大到小排序为:')
print(num)

2、sorted()函数

       python3中sorted函数取消了对cmp的支持,sorted 可以对所有可迭代的对象进行排序操作,尤其是可以对字典进行排序。其形式为:sorted(iterable, key=None, reverse=False)。sorted函数是有返回值的。其中的key以及reverse参数和上面介绍的一样。

  • cmp:cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。Python 3.X 的版本中已经没有 cmp 函数,如果你需要实现比较功能,需要引入 operator 模块。
  • 在Python里iterable被认为是一类对象,这类对象能够一次返回它的一个成员(也就是元素)。抽象一点就是适合迭代的对象。
  • python中可迭代对象有:列表、元组、字典、字符串;
#对列表进行排序
num = [5,4,9,1,0,2,6,3,7,8]
sortNum = sorted(num)    # 默认从小到大排序
print(num)      # 并没有进行就地排序,还是打印原列表
print(sortNum)
print(sorted(num,reverse=True))    # 从大到小排序

#对元组进行排序
a = (5,4,9,1,0,2,6,3,7,8)
print(sorted(a))

#对字典进行排序
people = {'zhang':21,'chen':22,'song':56,'sun':30,'zhou':16}
print(sorted(people))    # 对于字典而言,默认对keys进行排序

print(sorted(people.items())) # 根据keys进行排序,以列表形式返回键值对

print(sorted(people.values())) # 对字典中的值进行排序,返回列表形式

#根据年龄从大到小进行排序
print(sorted(people.items(),key = lambda x:x[1],reverse = True))

发布了78 篇原创文章 · 获赞 101 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_41575507/article/details/105428822