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

Python中处理列表格式字符串输入实现数字运算返回结果列表

Python解析[7, 0, 8]格式输入为整数列表的方法

针对你要实现的输入解析、逆序列表相加需求,可以直接用更简洁的逻辑实现,不需要冗余的字符串替换、反转拼接操作。


最简输入解析实现

如果只需要把[7, 0, 8]这类输入字符串转为整数列表,只需要3行核心代码:

# 读取输入并去掉首尾空白
raw_input = input().strip()
# 去掉首尾方括号,按逗号分割后逐个元素去空格、转整数
num_list = [int(seg.strip()) for seg in raw_input.strip("[]").split(",")]

测试输入[7, 0, 8]时,num_list的值就是[7, 0, 8],直接打印列表时Python会自动输出标准列表格式,不会保留多余的空格问题。


你原有代码的可优化点

你贴的代码存在几个明显问题,会导致运行报错或者结果不符合预期:

  • 内置函数名大小写错误:Python中获取字符ASCII码的内置函数是全小写的ord(),你写的大写开头Ord()会直接触发NameError
  • 冗余操作过多:两次调用translate删除括号、多次反转字符串拼接整数的逻辑完全可以省略,既增加代码量又容易出bug
  • 空格处理缺失:直接用split(",")分割字符串时,逗号后的空格会留在分割后的子串里,比如分割7, 0, 8会得到['7', ' 0', ' 8'],后续做字符串拼接时会把空格带入,导致转整数失败
  • 逻辑绕路:把列表转成整数相加再转回列表的写法,在列表长度极大时会产生不必要的性能开销,直接按位计算进位的写法逻辑更清晰。

完整的两逆序列表相加实现

从你写的代码逻辑看,你是要实现「两个按逆序存储各位数字的列表相加,结果同样按逆序返回」的逻辑,完整简洁实现如下:

def parse_list_input():
    """解析方括号包裹的逗号分隔数字输入为整数列表"""
    raw = input().strip().strip("[]")
    return [int(seg.strip()) for seg in raw.split(",")]

list1 = parse_list_input()
list2 = parse_list_input()

carry = 0
result = []
idx = 0
# 遍历到两个列表都遍历完、进位为0时停止
while idx < len(list1) or idx < len(list2) or carry:
    val1 = list1[idx] if idx < len(list1) else 0
    val2 = list2[idx] if idx < len(list2) else 0
    total = val1 + val2 + carry
    carry = total // 10
    result.append(total % 10)
    idx += 1

print(result)

测试用例:

  • 第一个输入[2,4,3],第二个输入[5,6,4],输出[7, 0, 8],符合预期
  • 第一个输入[9,9,9,9],第二个输入[9,9],输出[8,9,0,0,1],计算结果正确。

内容的提问来源于stack exchange,提问作者SAJJA PUSHYANTH RA191100301061

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:27:27