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

如何编写Python函数将整数列表转换为指定格式的十六进制字符串?

解决方案

先明确从输入输出反推的处理规则:

  • 数字范围在10-15之间时:
    • 第一次出现该数字,拼接它的十进制字符串(比如10 → "10")
    • 后续连续重复的同数字,拼接它的大写十六进制单字符(比如10 → "A")
  • 数字不在10-15范围时,直接拼接十进制字符串
  • 当从10-15的连续重复段切换到非10-15数字时,先加冒号再拼接后者

以下是修正后的代码:

def int_to_string(data):
    if not data:
        return ""
    
    result = []
    prev_num = data[0]
    # 处理第一个元素
    if 10 <= prev_num <= 15:
        result.append(str(prev_num))
        repeated_hex = True
    else:
        result.append(str(prev_num))
        repeated_hex = False
    
    for num in data[1:]:
        # 处理10-15之间的重复数字
        if 10 <= num <= 15 and num == prev_num:
            hex_char = hex(num)[2:].upper()
            result.append(hex_char)
            repeated_hex = True
        else:
            # 从重复段切换到普通数字时插入冒号
            if repeated_hex:
                result.append(":")
                repeated_hex = False
            result.append(str(num))
            prev_num = num
    
    return ''.join(result)

# 测试
test_list = [2,10,10,10,4,5]
print(int_to_string(test_list))  # 输出: 210AA:45

代码说明

  • 用列表result拼接内容比直接字符串拼接更高效(字符串不可变,每次拼接都会生成新对象)
  • repeated_hex标记当前是否处于10-15的重复数字段,用于判断是否需要添加冒号分隔
  • 对10-15的重复数字,首次添加十进制字符串,后续添加大写十六进制单字符
  • 当从重复段切换到普通数字时,自动插入冒号

内容的提问来源于stack exchange,提问作者Angels Vásquez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 03:20:32