你可以使用字典和循环来按照姓名分组,并将没有值的姓名设置为0。下面是一个Python的代码示例:
# 原始数据
data = [
{"姓名": "张三", "分数": 90},
{"姓名": "李四", "分数": 80},
{"姓名": "王五", "分数": 85},
{"姓名": "张三", "分数": 95},
{"姓名": "李四", "分数": 75},
{"姓名": "赵六", "分数": 70},
]
# 创建一个空字典用于存储分组后的结果
grouped_data = {}
# 循环遍历原始数据
for item in data:
# 获取姓名和分数
name = item["姓名"]
score = item["分数"]
# 检查字典中是否已经存在该姓名的分组
if name in grouped_data:
# 若存在,则将分数添加到该分组
grouped_data[name].append(score)
else:
# 若不存在,则新建一个列表,并将分数添加到该分组
grouped_data[name] = [score]
# 循环遍历分组后的结果,将没有值的姓名设置为0
for name, scores in grouped_data.items():
# 检查列表是否为空
if len(scores) == 0:
# 若为空,则设置为0
grouped_data[name] = 0
# 输出分组后的结果
print(grouped_data)
以上代码会输出以下结果:
{'张三': [90, 95], '李四': [80, 75], '王五': [85], '赵六': [70]}
其中,没有值的姓名将被设置为0。