Python3列表操作后整数列表出现多余空格的原因及解决
问题
执行以下Python代码:
num = [100,1,82,-1] print(sorted(num))
实际输出为:[-1, 1, 82, 100],但需求输出是:[-1,1,82,100]。
疑惑点:Python各类列表操作(如extend()、sort()、列表加法等)都会导致输出时元素间出现多余空格,目前这个问题已经导致LeetCode提交被拒,求解决办法。
解答
原因说明
你看到的空格和列表操作本身无关——extend()、sort()这类方法只负责修改列表内容,元素间的空格是Python列表默认的字符串表示(由列表的__str__方法生成)自带的格式,属于语言内置的输出规范。
解决方法
如果需要生成无空格的目标格式字符串,可以手动拼接:
num = [100,1,82,-1] sorted_num = sorted(num) # 把每个元素转成字符串,用逗号连接后包裹方括号 result = f"[{','.join(map(str, sorted_num))}]" print(result) # 输出:[-1,1,82,100]
解释:
map(str, sorted_num):将排序后的列表中每个元素转换为字符串类型','.join(...):用无空格的逗号把所有字符串元素连接起来- 最后用f-string包裹方括号,得到符合要求的格式
另外提醒:LeetCode大部分题目要求的是返回列表对象而非打印字符串,如果你的提交是因为打印格式被拒,大概率是误解了题目要求——应该直接返回sorted(num)这类列表,而不是打印它的字符串形式。只有当题目明确要求输出特定格式的字符串时,再用上面的拼接方法。
内容的提问来源于stack exchange,提问作者Shashank Priyadarshi
相关产品推荐
相关产品推荐

