第一行输入一个正整数 N,随后的N 行各输入一个人的姓名和年龄,中间用空格分隔(形如 “Tom 18” ),将字符串转为形如 {"name":"Tom","age":18} 的字典,按顺序加入到列表中,得到一个元素为字典的列表,分别根据年龄和姓名对其排序输出。
时间: 2023-07-19 10:09:59 浏览: 34
好的,我理解了你的问题。下面是代码实现:
```python
import json
# 输入N
N = int(input())
# 定义列表用于存储字典
lst = []
# 循环输入姓名和年龄,转为字典并加入列表中
for i in range(N):
name, age = input().strip().split()
lst.append({"name": name, "age": int(age)})
# 根据年龄排序并输出
lst_age = sorted(lst, key=lambda x: x["age"])
print(json.dumps(lst_age))
# 根据姓名排序并输出
lst_name = sorted(lst, key=lambda x: x["name"])
print(json.dumps(lst_name))
```
这段代码先输入一个正整数 N,并定义一个列表用于存储字典。接着循环输入 N 行,将每行的姓名和年龄转为字典并加入到列表中。最后根据年龄和姓名分别对列表进行排序并输出。
需要注意的是,这里使用了 `json` 模块的 `dumps` 函数来输出列表中的字典,以确保输出格式正确。