如何优雅地格式化列表输出:去除负数、升序排序并以空格分隔

小磊大大_3262

小磊大大_3262

2026-11-13

967人浏览

原创

如何优雅地格式化列表输出:去除负数、升序排序并以空格分隔

本文介绍如何将用户输入的整数字符串处理为仅含非负数的升序序列,并以空格连接输出(末尾带空格),解决自动评测系统对输出格式的严格要求。

本文介绍如何将用户输入的整数字符串处理为仅含非负数的升序序列,并以空格连接输出(末尾带空格),解决自动评测系统对输出格式的严格要求。

在实际编程练习或在线判题(如 LeetCode、PTA、Codeforces)中,输出格式的细微差异(例如末尾多余空格、方括号、逗号)常导致“答案错误”。你当前的代码使用 print(inputs) 会输出 Python 默认的列表格式 "[2, 4, 10, 12, 39]",既包含方括号和逗号,又无末尾空格,完全不符合题目要求。

核心问题有三点:

  • ✅ 过滤负数(已实现)
  • ✅ 升序排序(已实现)
  • ❌ 输出需为纯数字空格分隔序列,且末尾必须有一个空格

print(" ".join(...)) 是标准解法,但需注意:" ".join() 生成的是 "2 4 10 12 39"(无尾随空格)。而题目明确要求“space after the last entry”,即末尾必须有空格。因此,正确写法应为:

numbers = [int(i) for i in input().split()]        # 解析输入字符串为整数列表
non_negatives = [num for num in numbers if num >= 0]  # 保留非负数
sorted_result = sorted(non_negatives)               # 升序排序

# 关键:用空格连接所有数字,再额外添加一个空格
print(" ".join(map(str, sorted_result)) + " ")

✅ 示例运行:
输入: 10 4 39 12 2
输出: 2 4 10 12 39(注意末尾空格)

⚠️ 注意事项:

  • 若输入全为负数(如 -5 -1 -3),non_negatives 将为空列表," ".join([]) 返回空字符串 "",最终输出为 " "(单个空格)——这通常符合判题系统对空结果的格式预期;若需特殊处理(如不输出),可加 if sorted_result: 判断。
  • input().split() 自动忽略连续空格和首尾空白,天然健壮,无需额外清洗非数字字符(题目保证输入为整数字符串,故无需 try/except)。
  • 避免使用 print(*sorted_result),因为它虽能空格分隔,但默认不带末尾空格,且无法直接追加空格(print(*sorted_result, end=" ") 会多出换行前空格,行为不可控)。

综上,推荐最终简洁版代码:

nums = sorted(int(x) for x in input().split() if int(x) >= 0)
print(" ".join(map(str, nums)) + " ")

该方案逻辑清晰、符合判题规范,兼顾可读性与鲁棒性。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

2023.07.20

1911

4

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

2023.07.25

5364

7

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.31

1869

3

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

2023.08.03

32577

23

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3847

5

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3847

5

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1263

5

python合并两个列表
python合并两个列表

Python是一种强大的编程语言,具有许多方便的功能和工具。在Python中,有多种方法可以合并两个列表。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.10

616

4

python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2983

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.3万人学习