Python编程基础:第五十四节 排序Sort

第五十四节 排序Sort

前言

我们常需要对列表、元组中的元素进行排序,例如按照字母表排列学生的名称。这里就需要用到列表的sort()方法,以及sorted()函数。

实践

我们先来构建一个包含5个学生名字的列表:

names = ["Jon", "Bob", "Avil", "Tom", "Justin"]

然后我们对其中的学生名字按照字母表的顺序进行排列:

names.sort(reverse=False)
print(names)
>>> ['Avil', 'Bob', 'Jon', 'Justin', 'Tom']

这里的reverse=False为升序排列,若为reverse=True就是降序排列。
如果names不为列表,我们就不能用sort方法进行排序,而需要用sorted函数:

names = ("Jon", "Bob", "Avil", "Tom", "Justin")
sorted_names = sorted(names, reverse=True)
print(sorted_names)
>>> ['Tom', 'Justin', 'Jon', 'Bob', 'Avil']

可见,此时的names为元组,我们用sorted函数对其排序并指明排序方式。
如果我们的数据包含多列呢,此时还可以通过key参数指定按照哪一列排列:

details = [
    ("Jon", "A", 89), 
    ("Bob", "B", 12), 
    ("Avil", "A", 25), 
    ("Tom", "F", 58), 
    ("Justin", "B", 12),
    ]
index = lambda x: x[0]
details.sort(key=index, reverse=False)
print(details)
>>> [('Avil', 'A', 25), ('Bob', 'B', 12), ('Jon', 'A', 89), ('Justin', 'B', 12), ('Tom', 'F', 58)]

我们通过匿名函数指定按照第一列进行排列。如果原始数据不为列表,就需要用下述操作:

details = (
    ("Jon", "A", 89), 
    ("Bob", "B", 12), 
    ("Avil", "A", 25), 
    ("Tom", "F", 58), 
    ("Justin", "B", 12),
    )
index = lambda x: x[2]
sorted_details = sorted(details, key=index, reverse=False)
print(sorted_details)
>>> [('Bob', 'B', 12), ('Justin', 'B', 12), ('Avil', 'A', 25), ('Tom', 'F', 58), ('Jon', 'A', 89)]

可见我们按照最后一列升序排列。

以上便是排序的全部内容,感谢大家的收藏、点赞、评论。我们下一节将介绍map函数(Map),敬请期待~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值