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

Python中基于自定义函数的两个字典组合矩阵实现问询

优雅实现方案

可以通过动态提取键、自动计算单元格宽度、模块化函数来实现这个需求,代码简洁且通用,适配不同的字典和自定义计算逻辑:

x = {'a': 1, 'b': 2}
y = {'a': 3, 'c': 4}

def custom_calc(a, b):
    return a * b  # 替换为你的自定义计算逻辑

def build_matrix(x_dict, y_dict, calc_func, display_name="sum"):
    # 提取列(x的键)和行(y的键)
    cols = list(x_dict.keys())
    rows = list(y_dict.keys())
    
    # 生成所有单元格的显示文本
    cell_contents = [
        [f"{display_name}({x_dict[col]}, {y_dict[row]})" for col in cols]
        for row in rows
    ]
    
    # 计算单元格的最大宽度,保证表格对齐
    all_texts = cols + rows + [text for row_cells in cell_contents for text in row_cells]
    cell_width = max(len(text) for text in all_texts) + 2
    
    # 打印表头
    print(f"  | {' | '.join(f'{col:<{cell_width}}' for col in cols)} |")
    # 打印每一行内容
    for row_key, cells in zip(rows, cell_contents):
        print(f"{row_key} | {' | '.join(f'{cell:<{cell_width}}' for cell in cells)} |")

# 执行生成
build_matrix(x, y, custom_calc, display_name="sum")

方案优势

  • 通用性强:不管字典的键如何变化、自定义计算逻辑是什么,只需传入对应的字典和函数即可生成矩阵
  • 自动对齐:动态计算单元格宽度,避免手动调整格式导致的排版混乱
  • 模块化设计:把矩阵生成逻辑封装成函数,方便复用和维护
  • 可读性高:用列表推导式生成单元格内容,f-string格式化输出,代码简洁易懂

运行这段代码后,会输出和你期望完全一致的表格:

| a        | b        | 
a | sum(1,3) | sum(2,3) |
c | sum(1,4) | sum(2,4) |

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 21:33:15