import sys
# 输入
# content = sys.stdin.read().strip() # 原始输入: 按行分割(包含换行符)
# num1 = int(content.split('\n') if content else [])
num1 = int(input()) # 共有几个数字
num2 = [] # 存放数字
for i in range(num1):
num2.append(int(input()))
# print(num2) # 调试信息
# 从小到大排序
num2.sort()
# print(num2) # 调试信息
# 去除重复数字
num3 = [] # 创建新的列表,如果数字第一次出现,添加进num3
for i in range(len(num2)):
# if any(num3[j] != num2[i] for j in range(len(num3))) == True:
# num3.append(num2[i])
if num2[i] in num3:
continue;
else:
num3.append(num2[i])
# print(num3)
# num3.sort()
for i in range(len(num3)):
print(num3[i])
核心知识:
- 多行换行输入的数据如何存储
- 数字列表如何排序: .sort()
- 如何去除列表的重复元素(数字):创建一个新的列表,相同元素只添加一次
---
如果已知输入的行数
直接循环输入即可
如果未知输入的行数
sys.stdin.read().strip()可以读入所以输入内容
将按行分割的数字重新变成数字列表实现:
# 读取所有输入内容
content = sys.stdin.read().strip()
if content:
# 按行分割 → 转换为整数列表
num_list = [int(line) for line in content.split('\n')]
else:
num_list = []
---
数字列表的升降序与逆序
sort()函数 从小到大升序排序
sort(reverse = True) 从大到小降序
.reverse 逆序反转
---
判断元素是否在列表中
方法1:直接使用 in 关键字(最简洁)
nums = [1, 2, 3]
target = 1
if target in nums:
print(f"存在数字 {target}")
else:
print(f"不存在数字 {target}")
输出:存在数字 1
方法2:循环遍历(手动检查)
nums = [1, 2, 3]
target = 1
found = Falsefor num in nums: if num == target: found = True breakprint("存在" if found else "不存在")
方法3:使用 any() 函数
nums = [1, 2, 3]
target = 1
if any(num == target for num in nums):
print(f"存在数字 {target}")

京公网安备 11010502036488号