4.病人排队病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:\1. 老年人(年龄 >= 60岁)比非老年人优先看病。\2. 老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。\3. 非老年人按登记的先后顺序看病。时间限制:1000内存限制:65536输入第1行,输入一个小于100的正整数,表示病人的个数; 后面按照病人登记的先后顺序,每行输入一个病人的信息,包括:一个长度小于10的字符串表示病人的ID(每个病人的ID各不相同且只含数字和字母),一个整数表示病人的年龄,中间用单个空格隔开。输出按排好的看病顺序输出病人的ID,每行一个。样例输入```5021075 40004003 15010158 67021033 75102012 30```样例输出```021033010158021075004003102012```
【喵呜刷题小喵解析】首先,我们需要读取输入的病人数目和每个病人的信息。然后,我们将每个病人的信息存储为一个三元组,其中第一个元素表示病人是否为老年人(年龄大于等于60),第二个元素表示病人的ID,第三个元素表示病人的年龄。接下来,我们使用Python的内置函数sort()对病人列表进行排序。在排序时,我们使用一个lambda函数作为key参数,该函数返回一个元组,该元组的第一个元素表示病人是否为老年人,第二个元素表示病人的ID(反向存储,以便按照从大到小的顺序排序),第三个元素表示病人的年龄。最后,我们遍历排序后的病人列表,如果病人是老年人,则输出其ID的反向存储,否则直接输出其ID。需要注意的是,在Python中,字符串的切片操作可以使用步长参数,例如str[::-1]表示将字符串反转。在输出时,我们使用print()函数将每个病人的ID输出到单独的一行。