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

如何将字符串列表转换为键对应值可累加的字典?

解决字符串列表生成累加字典的问题

修复后的代码

def build_total_dict(str_list):
    total_dic = {}
    for string in str_list:
        parts = string.split()
        # 将开头的数字转为整数,用于后续累加计算
        score = int(parts[0])
        # 遍历分割后除数字外的所有单词
        for word in parts[1:]:
            # 用get方法获取当前单词的已有值(不存在则取0),加上当前score后更新
            total_dic[word] = total_dic.get(word, 0) + score
    return total_dic

# 测试示例
sample_list = ['4 it was amazing', '0 it was awful', '3 it was ok']
print(build_total_dict(sample_list))

改进说明

  • 解决值被覆盖的问题:原代码直接赋值会覆盖已有键的值,改用total_dic.get(word, 0) + score,既实现了累加逻辑,又把字符串类型的数字转为整数,避免出现字符串拼接的错误。
  • 适配任意单词数量:原代码硬编码取固定索引的单词,改用parts[1:]获取分割后除第一个数字外的所有单词,再循环遍历,不管后续有多少个单词都能正确处理,比如输入'5 this is a multi-word example',所有后续单词都会被累加5分。

测试结果

运行代码后输出与期望一致:

{'it': 7, 'was': 7, 'amazing': 4, 'awful': 0, 'ok': 3}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:52:54