打印数组元素用->分隔时出现前置多余分隔符的问题
解决循环打印数组元素时的分隔符问题
问题分析
你当前的问题出在通过固定截取字符串长度(s[4:])来消除前置分隔符的方式不够健壮——这种方法依赖分隔符和第一个元素的字符长度,当元素是负数时,很容易因为截取逻辑不匹配导致结果异常。
正确解决方案
直接使用Python的字符串join()方法,这是处理元素间分隔符的标准做法,能自动避免前置/后置分隔符问题,同时兼容正数、负数等所有数值类型:
# 处理输入:将输入字符串转为整数数组 hourly_temperature = list(map(int, input().split())) # 将数组元素转为字符串,用指定分隔符连接 result = ' -> '.join(map(str, hourly_temperature)) # 按照要求添加末尾空格后打印(print默认自动换行) print(f"{result} ")
为什么这个方法有效?
join()方法会遍历字符串列表,仅在元素之间插入分隔符,不会在开头或结尾添加多余分隔符。- 不管元素是正数(如
90)还是负数(如-32),map(str, ...)都会正确转为对应的字符串,完全不影响连接结果。
测试验证
- 输入
90 92 94 95,输出:90 -> 92 -> 94 -> 95(末尾带空格,自动换行) - 输入
-32 -35 -42,输出:-32 -> -35 -> -42(符合要求)
若坚持用循环拼接实现
如果一定要用循环逻辑,可通过判断是否为第一个元素来避免添加前置分隔符:
hourly_temperature = list(map(int, input().split())) s = "" for idx, temp in enumerate(hourly_temperature): if idx == 0: # 第一个元素直接添加 s += str(temp) else: # 非第一个元素先加分隔符再加元素 s += f" -> {temp}" # 添加末尾空格后打印 print(f"{s} ")
这种方式同样能避免前置分隔符问题,且不依赖固定长度的字符串截取,兼容性更强。
内容的提问来源于stack exchange,提问作者Cristiana Rodriguez
相关产品推荐
相关产品推荐

