题目:
1 第一行输入人员数 2 第二行到第N行(小于等于100),每行输入三个变量,第一个名称,第二个人员编号,第三个数量 3 4 要求: 5 1.先按照名称从小到大排序 6 2.名称相同,按照数量排序 7 3.数量相同按照人员编号排序 8 9 例: 10 输入: 11 12 3 13 cc 3 11 14 aa 3 22 15 aa 2 22 16 ab 1 33 17 18 输出: 19 aa 2 22 20 aa 3 22 21 ab 1 33 22 cc 3 11
答案:
1 import sys 2 if __name__ == "__main__": 3 # 第一行的n 4 n = int(sys.stdin.readline().strip()) 5 toallList = [] 6 for i in range(100): 7 # 读取每一行 8 line = sys.stdin.readline().strip() 9 # 转成列表 10 values = list(map(str, line.split())) 11 12 toallList.append(values) 13 if line == '' : 14 break 15 toallList.pop() 16 #排序 17 toallList.sort(key=lambda i: i[1], reverse=False) 18 toallList.sort(key=lambda i: i[2], reverse=False) 19 toallList.sort(key=lambda i: i[0], reverse=False) 20 21 for i in range(len(toallList)): 22 print(toallList[i][0],toallList[i][1],toallList[i][2])