第一行输入一个正整数 N,随后的N 行各输入一个人的姓名和年龄,中间用空格分隔(形如 “Tom 18” ),将字符串转为形如 {"name":"Tom","age":18} 的字典,按顺序加入到列表中,得到一个元素为字典的列表,分别根据年龄和姓名对其排序输出
时间: 2023-06-18 08:05:09 浏览: 113
字符串的操作,输入以字符串,然后排序
下面是代码实现:
```python
N = int(input())
lst = []
for i in range(N):
name, age = input().split()
d = {"name": name, "age": int(age)}
lst.append(d)
# 根据年龄排序
lst_age = sorted(lst, key=lambda x: x["age"])
print("按年龄排序:", lst_age)
# 根据姓名排序
lst_name = sorted(lst, key=lambda x: x["name"])
print("按姓名排序:", lst_name)
```
实现思路:
1. 首先读入一个整数 N,表示有 N 个人的信息需要输入。
2. 然后依次读入每个人的姓名和年龄,将其转化为形如 {"name":"Tom","age":18} 的字典,加入到列表 lst 中。
3. 使用 sorted 函数,根据 lambda 函数中指定的键值进行排序,分别得到按年龄排序的列表 lst_age 和按姓名排序的列表 lst_name。
4. 最后将两个列表输出即可。
注意:
1. 读入年龄时需要使用 int() 函数将字符串转化为整数。
2. sorted 函数中的 key 参数指定了排序时使用的键值,lambda 函数指定了根据哪个键值进行排序。
阅读全文