python对列表进行排序,常用有sort()和sorted()两种方法
sort()对列表中的元素进行排序,排序后,原来列表中的元素的顺序发生变化。
sorted()对列表中的元素进行排序,排序后,原来列表中的元素的顺序不变化。
语法格式:
list.sort(cmp=None, key=None, reverse=False)
cmp – 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。用于指定排序规则(例如:设置key = str.lower表示不区分大小写)
reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。
语法格式:
sorted(list, key=None, reverse=False)
list – 列表的名称
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。用于指定排序规则(例如:设置key = str.lower表示不区分大小写)
reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。
示例代码:
a = [9,81,7,6,1,2,32,4,15,41,1] b = [9,81,7,6,1,2,32,4,15,41,1] print("a的元素为:",a) print("b的元素为:",b) print("-----------------------------------") a.sort(reverse=True) print("a的元素为:",a) print("a的排序元素为:",a) print("-----------------------------------") c=sorted(b,reverse=True) print("b的元素为:",b) print("b的排序元素为:",c) print("-----------------------------------") z = ['cat','Taz','happy','pet','Aa'] p = ['cat','Taz','happy','pet','Aa'] print("z的元素为:",z) print("p的元素为:",p) z.sort() print("z的排序元素为:",z) p.sort(key=str.lower) print("p的排序元素为:",p) print("-----------------------------------")
结果为
a的元素为: [9, 81, 7, 6, 1, 2, 32, 4, 15, 41, 1] b的元素为: [9, 81, 7, 6, 1, 2, 32, 4, 15, 41, 1] ----------------------------------- a的元素为: [81, 41, 32, 15, 9, 7, 6, 4, 2, 1, 1] a的排序元素为: [81, 41, 32, 15, 9, 7, 6, 4, 2, 1, 1] ----------------------------------- b的元素为: [9, 81, 7, 6, 1, 2, 32, 4, 15, 41, 1] b的排序元素为: [81, 41, 32, 15, 9, 7, 6, 4, 2, 1, 1] ----------------------------------- z的元素为: ['cat', 'Taz', 'happy', 'pet', 'Aa'] p的元素为: ['cat', 'Taz', 'happy', 'pet', 'Aa'] z的排序元素为: ['Aa', 'Taz', 'cat', 'happy', 'pet'] p的排序元素为: ['Aa', 'cat', 'happy', 'pet', 'Taz'] ----------------------------------- Press any key to continue . . .
通过对比可以发现sort()和sorted()两种方法的区别,以及key的使用方法