读入三个整数,用 sorted 得到升序列表,再用星号展开输出。
OJ: luogu
题目 ID: P5715
难度:入门
标签:python入门排序输入输出
日期: 2026-07-15 18:07
题意
输入三个整数,按从小到大输出。
思路
Python 已经提供排序工具。把输入的三个数读成列表,调用 sorted(numbers) 得到升序新列表,然后空格分隔输出。
brute.py 不适合这题,因为排序工具直接表达了完整解法。
Python 知识
list(map(int, input().split()))把输入转成整数列表。sorted(numbers)返回一个新的升序列表,不修改原列表。print(*numbers)会把列表元素展开,默认用空格分隔输出。- 不要直接
print(numbers),那会输出 Python 列表格式,如[1, 5, 14]。
对应的本地 Python 笔记:
/home/rainboy/mycode/hugo-blog/content/program_language/python/sorting_and_ordering.md:sorted与list.sort。/home/rainboy/mycode/hugo-blog/content/program_language/python/input_output_and_strings.md:列表输入和多值输出。/home/rainboy/mycode/hugo-blog/content/program_language/python/oj_input_output_cheatsheet.md:输出数组。
代码
python
numbers = list(map(int, input().split()))
numbers = sorted(numbers)
print(*numbers, end="")cpp
/**
* Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
* rbook: -> https://rbook.roj.ac.cn https://rbook2.roj.ac.cn
* rainboy的学习导航网站: https://idx.roj.ac.cn
* create_at: 2026-07-27 00:00
* update_at: 2026-07-27 00:00
*/
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, c; // 三个整数
cin >> a >> b >> c;
// 手动比较交换,把三个数排成 a <= b <= c
if (a > b) swap(a, b);
if (b > c) swap(b, c);
if (a > b) swap(a, b);
cout << a << " " << b << " " << c << endl;
return 0;
}Pythonic 写法
sorted:
python
print(*sorted(map(int, input().split())))复杂度
这里只有三个数,可以看成时间复杂度
总结
Python 排序题先想到 sorted。输出列表时用 print(*a),让格式变成 OJ 需要的空格分隔整数。