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

Python如何处理含列表值的字典,生成带固定前缀补全值的新字典

正确实现代码

基础易读版本

d1 = {
    'A': ['col1', 'col2'],
    'B': ['col3', 'col4'],
    'C': ['col5', 'col6']
}

# 第一步:提取全量列名,展开为一维列表
all_cols = []
for cols in d1.values():
    all_cols.extend(cols)

d2 = {}
# 第二步:逐个键生成目标列表
for key, own_cols in d1.items():
    current_res = []
    for col in all_cols:
        # 属于当前键的列保留原值,否则加前缀
        current_res.append(col if col in own_cols else f"0 {col}")
    d2[key] = current_res

print(d2)

简洁推导式版本

d1 = {'A': ['col1', 'col2'], 'B': ['col3', 'col4'], 'C': ['col5', 'col6']}
all_cols = [col for cols in d1.values() for col in cols]
d2 = {
    k: [col if col in own_cols else f"0 {col}" for col in all_cols]
    for k, own_cols in d1.items()
}

原代码的问题说明

  • 你定义的c1是二维列表[['col1','col2'], ['col3','col4'], ['col5','col6']],没有把所有列展开为全量一维列表,遍历逻辑不符合需求
  • 内层循环中直接给d2[k]赋值,每次都会覆盖上一次的结果,没有逐个元素判断、拼接列表的逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:06:03