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

如何将每行单单词的文件转换为按词长分组的字典?

问题分析与解决

错误根源

  1. 文件指针耗尽:调用file.readlines()后,文件指针已移动到文件末尾,后续for line in file不会读取任何内容。
  2. 错误的解包逻辑:你的文件每行仅含单个单词,line.split()只会返回单元素列表,强行解包成(key, val)必然触发“值解包不足”错误。
  3. 逻辑偏离需求:你试图拆分每行内容为键值对,但实际需求是按单词长度分组,键为长度,值为同长度单词的列表。

修正后的代码

with open(dictionary_file, 'r') as file:
    # 读取所有行并去除换行符,生成干净的单词列表
    wordlist = [line.rstrip('\n') for line in file.readlines()]
    dictionary = {}
    for word in wordlist:
        length = len(word)
        # 若长度未作为键存在,先初始化空列表
        if length not in dictionary:
            dictionary[length] = []
        # 将单词添加到对应长度的列表中
        dictionary[length].append(word)
    print(dictionary)

代码说明

  • 先一次性读取所有行并处理换行符,得到完整的单词列表。
  • 遍历每个单词,以单词长度为键:
    • 若该长度未在字典中,先创建空列表作为对应值。
    • 将当前单词追加到对应长度的列表内。
  • 最终生成的字典即为按单词长度分组的目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:25:57