第一行输入一个正整数N,随后的N行各输入一个人的姓名和年龄,中间用空格分隔(形如 "Tom 18"),将字符串转为形如 {"name":"Tom","age":18} 的字典,按顺序加入到列表中,得到一个元素为字典的列表,分别根据年龄和姓名对其升序排序输出。
时间: 2023-07-07 11:45:28 浏览: 143
字符串的操作,输入以字符串,然后排序
好的,我可以帮你实现这个需求。请注意不要输入个人隐私信息哦~
```python
# 输入正整数N
N = int(input())
# 定义一个空列表用于存储年龄和姓名的字典
lst = []
# 循环读入N个人的信息并将其转化为字典
for i in range(N):
name, age = input().split()
d = {"name": name, "age": int(age)}
lst.append(d)
# 根据年龄和姓名对字典进行排序
lst.sort(key=lambda d: (d["age"], d["name"]))
# 输出排序后的结果
for d in lst:
print(d["name"], d["age"])
```
运行示例:
```
输入:
4
Tom 20
Jack 18
Lucy 20
John 25
输出:
Jack 18
Lucy 20
Tom 20
John 25
```
其中,首先输入一个正整数N,表示有N个人的信息需要输入。然后,循环读入N行信息,每行信息包括一个人的姓名和年龄,并将其转化为字典,存储在列表lst中。接着,根据年龄和姓名对字典进行排序,最后输出排序后的结果。注意,在排序时,使用了lambda函数对字典进行排序。
阅读全文