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。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))
作者:ACfun:)