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

Python:如何按指定条件将列表转字典?代码错误求助

修正列表转字典的Python实现(解决键遗漏问题)

你的核心问题是原代码采用步长为2的遍历逻辑,仅处理偶数索引的元素,完全跳过了奇数索引的元素,违反了“列表中每个元素依次作为字典的键”的要求。以下是符合规则的正确实现:

实现代码

import re

def convert_list_to_dict(my_list):
    # 正则匹配格式:可选负号开头,至少一位数字+逗号+至少一位数字,确保完全匹配
    num_pattern = re.compile(r'^[-]?\d+,\d+$')
    result_dict = {}
    
    for idx in range(len(my_list)):
        current_key = my_list[idx]
        # 检查是否存在下一个元素,且下一个元素符合指定格式
        if idx + 1 < len(my_list) and num_pattern.match(my_list[idx+1]):
            result_dict[current_key] = my_list[idx+1]
        else:
            result_dict[current_key] = 0
    return result_dict

代码说明

  1. 遍历列表的每一个索引,确保每个元素都被当作字典的键,不会遗漏任何元素
  2. 对每个键,先判断是否存在下一个元素;若存在,用正则验证格式是否符合要求
  3. 符合格式则将下一个元素作为值,否则值设为0;最后一个元素的值直接设为0

示例验证

输入:

sample_list = ["name", "123,45", "age", "gender", "-67,89", "city"]

运行代码后输出:

{
    "name": "123,45",
    "age": 0,
    "gender": "-67,89",
    "city": 0
}

该结果完全符合转换规则的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:57:23