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

如何实现从文件生成字典:键唯一时值为普通列表,重复时值为嵌套列表?

解决方案

你可以先按原逻辑完成数据分组收集,之后再遍历字典做一次格式转换:当某个键对应的列表长度为1时,直接取列表里的唯一元素作为值;长度大于1则保持原嵌套列表结构。

修改后的代码如下:

example_dict = {}
for line in dictionary:
    line = line.strip().split()  # split()默认按任意空白分割,比split(' ')更健壮
    key = line[0]
    if key not in example_dict:
        example_dict[key] = []
    example_dict[key].append(line[1:])

# 格式转换:处理单条记录的键
for key in example_dict:
    if len(example_dict[key]) == 1:
        example_dict[key] = example_dict[key][0]

return example_dict

代码说明

  • 保留原数据收集逻辑,确保所有记录都被正确分组到对应键下
  • 新增遍历步骤:检查每个键对应的值列表长度,若为1则将值替换为列表中的唯一子列表,避免不必要的嵌套
  • 用split()替代split(' '),能更好处理行内多个空格的情况(比如示例中jim那行末尾的空格)

测试你的输入文件内容,输出会符合预期:

{'micheal': ['math', '2'], 'jim': [['chem', '3'], ['math', '3']], 'pam': ['cs', '4']}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 10:15:40