You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取姓名首字母生成字典并合并文件数据计算日平均值

问题与实现方案

需求概述

已知两个文件的内容如下:

file1 内容:

Name, day1
Omi Aiz,90
Carin Jack,92
Swit Han,88

file2 内容:

Name, Day2
Omi Aiz, 20
Carin Jack,30
Swit Han,40

需要完成两个任务:

  1. 将数据合并为包含分数列表的字典,格式如下:
    {'OA':[90,20],'CJ':[92,30],'SH':[88,40]}
    
  2. 基于上述字典计算每人两天分数的平均值,生成新字典:
    {'OA':55,'CJ':61,'SH':64}
    

实现代码(Python)

假设已经读取两个文件的内容到列表lines1(对应file1)和lines2(对应file2)中,以下是具体实现:

1. 合并为目标字典

# 处理file1,提取姓名缩写与对应分数
data1 = {}
for line in lines1[1:]:  # 跳过表头行
    name_str, score_str = line.strip().split(',')
    # 生成姓名缩写:拆分姓名后取每个单词首字母大写拼接
    initials = ''.join([word[0].upper() for word in name_str.split()])
    data1[initials] = int(score_str.strip())

# 处理file2,同样提取数据
data2 = {}
for line in lines2[1:]:
    name_str, score_str = line.strip().split(',')
    initials = ''.join([word[0].upper() for word in name_str.split()])
    data2[initials] = int(score_str.strip())

# 合并两个字典,生成包含两天分数的列表
merged_dict = {key: [data1[key], data2[key]] for key in data1}
print(merged_dict)

运行后输出:

{'OA': [90, 20], 'CJ': [92, 30], 'SH': [88, 40]}

2. 计算平均值生成新字典

基于上面的merged_dict,用字典推导式快速计算平均值:

avg_dict = {key: sum(values) // len(values) for key, values in merged_dict.items()}
print(avg_dict)

运行后输出:

{'OA': 55, 'CJ': 61, 'SH': 64}

内容的提问来源于stack exchange,提问作者hongyin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 02:46:07