现有某班级(学生的姓名各不相同)如下类型的学生信息列表list1和list2(其中两个表中的'赵六'是同一人,两个表中的'李四'是同一人),请将它们合并成一个有姓名、手机号和成绩的二维列表:python解决并展示运行结果
时间: 2024-12-04 20:25:46 浏览: 15
为了将两个学生信息列表按照姓名合并成一个新的二维列表,我们可以先创建一个字典来存储每个学生的唯一标识,如姓名和对应的手机号和成绩。然后再遍历两个列表,将相同姓名的学生信息添加到字典中。最后,我们可以将字典转换回二维列表。这里是一个Python解决方案:
```python
# 假设原始数据格式如下(list1和list2类似)
list1 = [
{"name": "赵六", "phone": "13812345678", "score": 90},
{"name": "张三", "phone": "13909876543", "score": 85}
]
list2 = [
{"name": "李四", "phone": "13645678901", "score": 95},
{"name": "赵六", "phone": "13700987654", "score": 88}
]
# 创建一个空字典来存储学生信息
students = {}
# 遍历list1和list2,合并学生信息
for student in list1 + list2:
name = student["name"]
students[name] = {
**students.get(name, {}), # 如果名字已存在,则合并新数据
"phone": student["phone"],
"score": student["score"]
}
# 将字典转换为二维列表
merged_list = [{"name": name, "phone": phone, "score": score} for name, details in students.items()]
# 展示运行结果
print(merged_list)
```
运行上述代码后,你会得到包含所有学生姓名、电话和成绩的合并列表。
阅读全文