题解 | 明明的随机数

明明的随机数

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 机考 文章被收录于专栏

准备华为机考

全部评论

相关推荐

05-16 11:16
已编辑
东华理工大学 Java
牛客737698141号:盲猜几十人小公司,庙小妖风大,咋不叫她去4️⃣呢😁
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务