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

如何在代码中规范编写大型数组/DataFrame?

处理大型预设数组/DataFrame的最佳实践

把大型预设数据硬编码在代码里确实不是最优解——既不便于维护(修改数据要改代码),也降低了代码可读性,大厂普遍遵循数据与代码分离的原则来处理这类场景,以下是具体实践方案:

1. 用外部文件存储数据,按需读取

这是最常用的方案,把数据从代码中剥离到独立文件,既方便修改,也能让代码更简洁。

  • 适用文件类型:
    • CSV:最通用的结构化数据格式,适合你这种单列数值的场景,编辑和读取都简单
    • Excel:如果需要和非技术同事共享、编辑数据,用Excel更友好
    • JSON/YAML:如果后续需要扩展数据字段(比如给厚度加对应的材质、规格),这类格式支持嵌套结构,扩展性更强
  • 代码示例(Python + Pandas):
    假设把厚度数据逐行写入data/sheet_thickness.csv文件,读取代码如下:
    import pandas as pd
    # 读取CSV为DataFrame,指定列名
    df = pd.read_csv("data/sheet_thickness.csv", header=None, names=["thickness"])
    
    如果用Excel文件:
    df = pd.read_excel("data/sheet_thickness.xlsx", sheet_name="Sheet1", header=None, names=["thickness"])
    
  • 优势:数据修改无需改动代码,直接编辑外部文件;数据可单独做版本控制(比如用Git跟踪CSV文件的变更记录);代码逻辑更清晰。

2. 放在配置文件中管理

如果数据量不算极大,但希望和项目配置项统一管理,可以用YAML/INI这类配置文件:

  • 示例config/sheet_config.yaml:
    sheet_specs:
      thickness_list:
        - 2
        - 5
        - 6
        # 其余数值按格式补充
    
  • 读取代码:
    import yaml
    import pandas as pd
    
    with open("config/sheet_config.yaml", "r", encoding="utf-8") as f:
        config = yaml.safe_load(f)
    df = pd.DataFrame(config["sheet_specs"]["thickness_list"], columns=["thickness"])
    

3. 代码内硬编码的优化(万不得已时用)

如果因为特殊限制必须把数据留在代码里,至少要优化格式提升可读性:

  • 按逻辑分组换行,加注释说明分组规则,比如按厚度范围、批次分类:
    Sheet_thickness = [
        # 薄规格(≤5mm)
        2, 5, 1, 2.5, 1.5, 1, 2, 1, 1, 1, 1.5, 3, 3, 4, 5, 2, 1, 1.5, 2, 2.5, 1.5,
        # 中规格(6-20mm)
        6, 12, 10, 8, 6, 4, 3, 8, 10, 12, 20, 22, 3, 6, 12, 15, 20, 6, 12, 20, 12, 6, 10, 11, 12, 8, 10, 11, 12, 20, 12, 8, 6, 2, 10, 3, 2, 4, 5, 6,
        # 厚规格(≥25mm)
        25, 50, 75, 101, 25, 50
    ]
    df = pd.DataFrame(Sheet_thickness, columns=["thickness"])
    

额外规范要点

  • 项目目录结构要清晰:单独建data/或config/文件夹存放数据/配置文件,避免和代码文件混放
  • 给数据文件加说明:在data/目录下写README.md,说明数据的来源、含义、更新记录
  • 缓存读取结果:如果数据是只读且不会变更的,读取后可以用缓存(比如functools.lru_cache)避免重复IO操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:35:03