python中列表(list)排序的一些常见操作

对列表排序一般有两种操作:my_list.sort()和sorted(my_list)

1.使用sort排序

1
2
3
4
my_list = [3, 5, 1, 4, 2]
my_list.sort()
print(my_list)
#输出[1,2,3,4,5]

2.使用sorted排序

1
2
3
4
my_list = [3, 5, 1, 4, 2]
my_list_1=sorted(my_list)
print(my_list_1)
#输出[1,2,3,4,5]

可以看出操作有所不同,使用sort()方法对list排序会修改list本身,不会返回新list,而sorted()方法不会对原list进行修改,而是返回一个新list,但是如果你不需要保留原来的list,此方法将更有效sort()。

另外sort()不能对dict字典进行排序,如果sort()里面不填参数,即默认升序,若要降序只需my_list.sort(reverse=True),(True降序,False升序(sorted()操作与之一样))

3.列表里嵌套列表且里面的列表有多个值,并指定以第几个值进行排序

1
2
3
4
#指定第二个进行升序排序
users=[[1,4],[5,6],[4,6]]
user=sorted(users,key=lambda x:x[1])
users.sort(key=lambda x:x[1])
1
2
3
#指定第二个升序排序,如果第二个相等,则以第一个排序
user=sorted(users,key=lambda x:(x[1],x[0]))
users.sort(key=lambda x:(x[1],x[0])
1
2
3
#指定第二个升序排序,如果第二个相等,则以第一降序排列
s=sorted(users,key=lambda x:(x[1],-x[0]))
users.sort(key=lambda x:(x[1],-x[0])
1
2
3
#指定第二个降序排序,如果第二个相等,则以第一升序排列
s=sorted(users,key=lambda x:(-x[1],x[0]))
users.sort(key=lambda x:(-x[1],x[0])
hey!baby,站住,点它!