在工作中,我们往往会碰到这样格式的表格:
姓名 | 科目 | 成绩 |
---|---|---|
张三 | 语文 | 80 |
张三 | 数学 | 90 |
张三 | 英语 | 88 |
李四 | 语文 | 74 |
李四 | 数学 | 87 |
李四 | 英语 | 90 |
我们希望转换成这样格式的表格:
姓名 | 语文 | 数学 | 英语 |
---|---|---|---|
张三 | 80 | 90 | 88 |
李四 | 74 | 87 | 90 |
用json 表示就是:
list_a = [{"姓名":"张三","语文":80},
{"姓名":"张三","数学":90},
{"姓名":"张三","英语":88},
{"姓名":"李四","语文":74},
{"姓名":"李四","数学":87},
{"姓名":"李四","英语":90}]
通过以下一行python代码:
print([reduce(lambda x,y:{**x,**y},a) for _, a in groupby(sorted(list_a,key=lambda a: a["姓名"]),key=lambda a: a["姓名"])])
输出:
[{'姓名': '张三', '语文': 80, '数学': 90, '英语': 88}, {'姓名': '李四', '语文': 74, '数学': 87, '英语': 90}]