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

Python如何将元组列表转换为指定键结构的字典列表

实现方法

你可以通过「预定义顺序键列表 + 遍历配对」的方式完成转换,步骤如下:

  • 先按要求的映射顺序,把7个字典键存成固定列表,保证和元组元素位置一一对应
  • 遍历原始元组列表,将每个元组的所有元素统一转为字符串类型
  • 用zip()将键和转换后的值按位置配对,生成单个字典,最终收集为列表即可

完整代码

# 按映射顺序定义字典键
field_keys = ["Rank", "ChampionName", "ChampionImage", "Tier", "Win Rate", "Pick Rate", "Ban Rate"]

# 原始元组列表
tuples_variable = [
    (1, 'Singed', 'https://opgg-static.akamaized.net/images/lol/champion/Singed.png', 0, '55.76%', '3.58%', '3.53%'),
    (2, 'Ahri', 'https://opgg-static.akamaized.net/images/lol/champion/Ahri.png', 1, '50.71%', '16.58%', '18.71%')
]

# 执行转换
result = []
for item_tuple in tuples_variable:
    # 元组元素全部转字符串,和键配对生成字典
    current_dict = dict(zip(field_keys, [str(value) for value in item_tuple]))
    result.append(current_dict)

如果偏好简洁写法,也可以直接用列表推导式完成转换逻辑:

result = [dict(zip(field_keys, map(str, item_tuple))) for item_tuple in tuples_variable]

结果验证

执行以下代码打印结果,可以看到完全符合要求的结构:

import json
print(json.dumps(result, indent=2, ensure_ascii=False))

输出内容:

[
  {
    "Rank": "1",
    "ChampionName": "Singed",
    "ChampionImage": "https://opgg-static.akamaized.net/images/lol/champion/Singed.png",
    "Tier": "0",
    "Win Rate": "55.76%",
    "Pick Rate": "3.58%",
    "Ban Rate": "3.53%"
  },
  {
    "Rank": "2",
    "ChampionName": "Ahri",
    "ChampionImage": "https://opgg-static.akamaized.net/images/lol/champion/Ahri.png",
    "Tier": "1",
    "Win Rate": "50.71%",
    "Pick Rate": "16.58%",
    "Ban Rate": "18.71%"
  }
]

说明:用zip做顺序配对的方式扩展性更好,后续如果需要调整字段顺序、新增/删除字段,只需要修改field_keys列表即可,不需要改动转换逻辑。所有字段统一走str()类型转换,原本就是字符串类型的字段不会发生内容变化,数字类型的Rank、Tier会自动转为要求的字符串格式。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 07:27:38