pythontip 排序一个元组列表

编写一个程序,按照多个条件对一个元组列表进行排序。每个元组包含一个姓名,年龄和分数。

定义函数sort_tuples(),该函数接收一个元组列表作为参数。
列表中的每个元组都有三个元素:一个字符串(即姓名)和两个整数(即年龄 和 分数)。
如果姓名相同,则按照年龄(升序)排序;如果姓名和年龄都相同,则按照分数(升序)排序。

  • 这道题首先接到输入的数据,for接到字符串数据,通过split(‘ ’)消除空格,append进列表
    输入对应的 my_list = [("Peter", "24", "78"), ("Micheal", "25", "78"), ("Peter", "24", "80"), ("Peter", "25", "78")]
  • 对列表的内容进行单独处理,使其能成为对比的key
  • 设置函数进行对比key=get_sort_key其没有赋值,将整个函数给了sorted
    def sort_tuples(my_list):
    def get_sort_key(tuple_item):
    name=tuple_item[0]
    age=int(tuple_item[1])
    score=int(tuple_item[2])
    return (name,age,score)
    return sorted(my_list,key=get_sort_key)
点击查看代码
def sort_tuples(my_list):
    def get_sort_key(tuple_item):
        name=tuple_item[0]
        age=int(tuple_item[1])
        score=int(tuple_item[2])
        return (name,age,score)
    return sorted(my_list,key=get_sort_key)

# 初始化列表
my_list = []

# 获取用户输入
for _ in range(4):
    s = input()
    my_list.append(tuple(s.split(" ")))

# 调用函数
print(sort_tuples(my_list))
posted @ 2025-11-08 19:18  硫酸钡barit  阅读(23)  评论(0)    收藏  举报