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

如何简化Python嵌套字典的CSV生成代码并避免使用join?

问题与解决方案

原始数据

data = {
        'A': [{1.0: 133.0}, {4.0: 126.0}], 
        'B': [{1.0: 153.0}, {4.0: 16.0}],
        'C': [{1.0: 9.0}, {4.0: 12.0}]
       }

期望输出

A, 1.0, 133.0
A, 4.0, 126.0
B, 1.0, 153.0
B, 4.0, 16.0
C, 1.0, 9.0
C, 4.0, 12.0

现有实现代码

with open("super.csv", "w") as f:
    for k, v in data.items():
        for a in v:
            f.write(k + ", " + "".join('{}, {}'.format(k1,v1) for k1,v1 in a.items()) + "\n")

简化后的代码

由于每个子列表中的字典都仅包含一组键值对,我们可以直接取出这组键值对,结合字符串格式化简化代码,同时避免使用join方法:

方式1:使用f-string(Python3.6+)

with open("super.csv", "w") as f:
    for key, items in data.items():
        for item in items:
            num, val = next(iter(item.items()))
            f.write(f"{key}, {num}, {val}\n")

方式2:使用format方法

with open("super.csv", "w") as f:
    for key, items in data.items():
        for item in items:
            num, val = next(iter(item.items()))
            f.write("{}, {}, {}\n".format(key, num, val))

说明

  • next(iter(item.items()))直接取出字典中唯一的键值对,无需遍历所有元素(因为每个字典只有一组键值对)
  • 用f-string或format方法替代字符串拼接,代码可读性更强,也避免了join的使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:00:03