如何按双参数对元组列表排序:先按年龄、同年龄按姓名升序
实现方法
sorted() 函数的 key 参数支持返回元组,元组默认的排序规则就是按元素顺序依次比较优先级,刚好匹配你的需求:前一个元素相等时才会比较后一个元素。你只需要把排序条件按优先级顺序放进元组作为key即可:
- 第一优先级按年龄升序,对应元组第一个位置放原元组的索引1(年龄字段)
- 同年龄时按姓名字母升序,对应元组第二个位置放原元组的索引0(姓名字段)
代码示例
# 原始元组列表 people = [('John',32),('Jane',22),('Doe',32),('Mario',55)] # 按规则排序 sorted_people = sorted(people, key=lambda x: (x[1], x[0])) # 打印结果 print(sorted_people)
输出结果
[('Jane', 22), ('Doe', 32), ('John', 32), ('Mario', 55)]
内容的提问来源于stack exchange,提问作者Vivekan97
相关产品推荐
相关产品推荐

