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

仅用单循环无包导入 从Python列表生成字母为键浮点元组为值的字典

问题描述

给定Python列表:
list1 = ['A','5','-0.5','D','0.5','-3','A','8','-0.7','C','4','1.6','D','1','0.6']
需要按照以下规则转换为目标字典:

  • 字典的键为列表中的字母元素
  • 键对应的值为列表,列表元素由紧随该字母后的两个字符串转换为float类型后组成的元组构成
  • 要求仅使用一次循环实现,不允许导入任何外部包
    预期输出示例:
    d = { "A" : [(5 ,-0.5), (8 ,-0.7)] , "D" : [(0.5 ,-3) , (1 , 0.6)] , "C" : [(4 , 1.6)] }
实现代码
list1 = ['A','5','-0.5','D','0.5','-3','A','8','-0.7','C','4','1.6','D','1','0.6']
res_dict = {}
index = 0
list_len = len(list1)
# 单次循环遍历列表
while index < list_len:
    current_item = list1[index]
    # 识别到字母元素时处理
    if current_item.isalpha():
        # 取后续两个元素转float组成元组
        num_tuple = (float(list1[index+1]), float(list1[index+2]))
        # 字典键不存在则初始化
        if current_item not in res_dict:
            res_dict[current_item] = []
        res_dict[current_item].append(num_tuple)
        # 跳过已处理的两个数字元素,步进3
        index += 3
    else:
        # 兼容异常格式场景,正常合规输入不会进入该分支
        index += 1
结果验证

打印res_dict即可得到符合要求的输出:
{'A': [(5.0, -0.5), (8.0, -0.7)], 'D': [(0.5, -3.0), (1.0, 0.6)], 'C': [(4.0, 1.6)]}
如果需要元组内数值保留整数格式,可在类型转换时增加整数判断逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:45:05