Python整数排序去负程序优化:过滤非数字与输出格式调整
解决方案:过滤非数字、去负排序并按指定格式输出
以下是满足所有需求的代码:
# 处理输入,过滤非数字项 valid_numbers = [] for token in input().split(): try: num = int(token) valid_numbers.append(num) except ValueError: continue # 跳过无法转换为整数的内容 # 过滤负数并升序排序 processed_numbers = sorted(num for num in valid_numbers if num >= 0) # 按要求输出:每个数字后带空格(含最后一个) print(' '.join(map(str, processed_numbers)) + ' ')
核心改进说明:
- 非数字过滤:用
try-except捕获整数转换失败的情况,确保只有能转成整数的内容被保留,避免原代码遇到非数字直接崩溃的问题。 - 输出格式修正:放弃直接打印列表的方式,通过
str.join将排序后的数字转为空格分隔的字符串,再追加一个空格,保证最后一个数字后也有空格,符合平台的格式要求。 - 功能保留优化:保留了移除负整数和升序排序的逻辑,用生成器表达式替代列表推导,减少内存占用。
测试示例:
输入:10 4 39 12 2 test -7
输出:2 4 10 12 39 (末尾带有空格)
内容的提问来源于stack exchange,提问作者The Trickster
相关产品推荐
相关产品推荐

