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

如何将chunk对象按名称分类到对应列表?优化可扩展性代码方案

优化方案:基于字典实现可扩展的Chunk分类

核心思路

用字典映射chunk_name到对应列表,彻底摆脱手动定义变量和重复判断的局限,无论新增多少种chunk_name都能自动适配,完全具备扩展性。

代码实现

基础原生写法

不需要额外导入模块,用原生字典即可实现:

# 初始化空字典,键为chunk_name,值为对应chunk的列表
chunk_groups = {}

for chunk in self.chunk_collection:
    name = chunk.chunk_name
    # 若当前chunk_name未在字典中,先创建空列表
    if name not in chunk_groups:
        chunk_groups[name] = []
    chunk_groups[name].append(chunk)

更简洁的写法(使用collections.defaultdict)

借助标准库的defaultdict,可以自动为不存在的键创建默认空列表,进一步简化代码:

from collections import defaultdict

chunk_groups = defaultdict(list)

for chunk in self.chunk_collection:
    chunk_groups[chunk.chunk_name].append(chunk)

后续使用示例

分类完成后,通过字典键即可快速获取对应分组的chunk列表,用get方法还能避免键不存在时抛出异常:

# 获取chunk_name为"0"的所有chunk,若不存在则返回空列表
zero_chunks = chunk_groups.get("0", [])

优势对比

  • 可扩展性:新增任意chunk_name无需修改代码,自动适配分组
  • 代码简洁:消除大量重复的if判断和变量定义,减少冗余
  • 可读性:逻辑清晰直观,一眼就能理解是按chunk_name进行分组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:35:24