Python每日一题 2025.3.27
- 一、题目
- 二、分析
- 三、自己源代码
- 四、deepseek答案
- 五、源代码与ai分析
一、题目
python">question=["""编写程序,生成包含20个随机数的列表,然后将前十个元素升序排列,后10个元素降序排列,并输出结果"""
]
二、分析
今天本来写了两个manim文章,本来不想写每日一题了,但后来看了看今天的题目还是比较简单,还是做做吧。等后续题目可能没这么容易了。我是用切片分为两个列表,然后分别排序再进行添加的。不知道有没有一次性的操作。不过随机数的生成,我还是只会之前的randint的范围生成,如果不指定范围的话,总感觉会存在问题。
三、自己源代码
python">import random
import pdb
numbers=[random.randint(0, 100) for _ in range(20)]
n1=numbers[:-10]
n2=numbers[10:]
# pdb.set_trace()
result=sorted(n1,reverse=False)
result.extend(sorted(n2,reverse=True))
print(result)
输出结果:
四、deepseek答案
python">import random# 生成包含20个随机整数的列表(范围1到100)
random_list = [random.randint(1, 100) for _ in range(20)]# 前10个元素升序排列
random_list[:10] = sorted(random_list[:10])# 后10个元素降序排列
random_list[10:] = sorted(random_list[10:], reverse=True)# 输出结果
print("处理后的列表:", random_list)
输出结果:
五、源代码与ai分析
整体逻辑上是一样的,但是细节方面还是deepseek更好。今天刚好看了本python书的列表的切片部分,阅读了一下发现切片也可以部分数据整体替换,其实就是类似于deepseek那样,分别直接对一个列表的前十个数、后十个数排序后再代替原列表数据。这样避免了空间的再占用。另外我记得书中的列表remove方法似乎有些问题。那本书是2020年出版的,python也迭代了好几代了,感觉应该修复了。明天再测试一下看看有没有问题,再在list专栏添加吧。