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

Python3如何将键值交替的列表转换为目标字典结构

Python读取键值对文本转字典实现

待处理的源文本格式如下:

firstval="myval"
secondval="myotherval"

初始编写的处理逻辑是先把内容拆分到列表,最终得到了键值交替的扁平列表:

values = ["firstval", "myval", "secondval", "myotherval"]

需要将该列表转换为键值对应的字典结构,目标格式为:

values = {
    "firstval": "myval",
    "secondval": "myotherval"
}

转换方法

针对交替存储键、值的扁平列表,有两种简便实现方式,还可以顺手清理掉值两侧的双引号:

  • 字典推导式实现:按步长2遍历列表,取当前索引位为键、下一位为值
flat_values = ["firstval", '"myval"', "secondval", '"myotherval"']
res = {
    flat_values[i]: flat_values[i+1].strip('"')
    for i in range(0, len(flat_values), 2)
}
  • zip打包实现:用切片分别取出所有键和所有值,打包后直接传入dict构造器,代码更简洁
res = dict(
    zip(
        flat_values[::2],
        [val.strip('"') for val in flat_values[1::2]]
    )
)

额外优化建议

初始读取代码存在一个小问题:file.readlines()本身就会按行返回内容列表,不需要再调用split("\n")。实际处理时完全不需要先把内容转成扁平列表,逐行读取时直接拆分键值存入字典即可,还能兼容值里包含等号的场景:

res = {}
with open("你的文件路径", "r", encoding="utf-8") as f:
    for line in f:
        line = line.strip()
        if not line:
            continue
        # split第二个参数传1,代表只拆分第一个等号,避免值里有等号时拆分错误
        key, value = line.split("=", 1)
        res[key] = value.strip('"')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:48:17