题解 | 明明的随机数
明明的随机数
https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
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}")
HUAWEI 机考 文章被收录于专栏
准备华为机考