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

Python:将值为列表的字典转换格式并导出至Excel

解决方法:将字典转换为适合导出Excel的格式

嘿,我完全懂你的需求——就是要让字典里每个列表的元素都和它所属的键一一对应,最后导出成两列的Excel文件对吧?其实用pandas就能轻松搞定,不用纠结那种重复键的字典(毕竟字典本身不允许重复键,那个思路根本走不通哦)。下面给你两种简单高效的方法:

方法一:用列表推导式构建数据结构

这种方法直接生成能被pandas识别的元组列表,逻辑清晰直观:

  1. 先定义你的字典(用你的示例数据举例):
my_dict = {
    1: [0, 120, 115, 100, 91, 131, 74, 14, 8, 105, 122, 47, 103, 0],
    2: [0, 107, 25, 26, 121, 118]
}
  1. 用列表推导式生成键与元素的配对列表:
# 外层循环遍历字典的键值对,内层循环遍历每个列表里的元素
data = [(key, value) for key, values in my_dict.items() for value in values]

执行完这行代码后,data会变成类似[(1,0), (1,120), (1,115), ..., (2,0), (2,107), ...]的结构,完美符合你的需求。

  1. 转换为DataFrame并导出Excel:
import pandas as pd

# 生成DataFrame并指定列名
df = pd.DataFrame(data, columns=['键', '列表元素'])
# 导出到Excel,index=False是为了不导出pandas默认的索引列
df.to_excel('output.xlsx', index=False)

方法二:用pandas的explode方法(更简洁)

如果你觉得列表推导式有点绕,也可以用pandas自带的explode方法,一步拆分列表:

  1. 先把字典转成初始的DataFrame:
import pandas as pd

my_dict = {
    1: [0, 120, 115, 100, 91, 131, 74, 14, 8, 105, 122, 47, 103, 0],
    2: [0, 107, 25, 26, 121, 118]
}

# 生成初始DataFrame,此时每个键对应一行,列表是一个单元格
df = pd.DataFrame(my_dict.items(), columns=['键', '列表元素'])
  1. 用explode拆分列表为多行:
# explode会把每个列表元素拆成单独一行,同时保留对应的键
df = df.explode('列表元素', ignore_index=True)
  1. 导出Excel:
df.to_excel('output.xlsx', index=False)

这两种方法都能快速帮你完成格式转换,导出的Excel会有两列:一列是字典的键,另一列是对应的列表元素,完全符合你的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 09:52:43