Python运行发现结果不对,不知道哪一步出错了

题目:
生成一个包含20个随机整数的列表;对偶数下标的元素进行降序排列;奇数下标的元素保持不变

运行发现结果不对,不知道哪一步出错了



```python
import random

x=[random.randint(1,100)for i in range(20)]
i=len(x)-1
while i>=0:
    if i%2==0:
        x.sort(reverse=True)
    i=i-1

print(x)
        


```

排序有问题,这样写只要有一个偶数,整个列表就会降序排序一次。

这句话“对偶数下标的元素进行降序排列;奇数下标的元素保持不变”理解为,数组中按照偶数序号 0,2,4.....18提取出数字,然后实现降序,并按照序号 0,2,4.....18再放入数组中,奇数序号保持不变,实现的代码如下:

import random

# 生成包含20个随机整数的列表
lst = [random.randint(0, 100) for i in range(20)]
print("原始列表:", lst)

# 提取偶数下标的元素
even_lst = lst[::2]

# 对偶数下标的元素进行降序排序
even_lst.sort(reverse=True)

# 按照偶数下标的顺序从大到小排列
result_lst = []
for i in range(0, len(lst), 2):
    result_lst.append(even_lst[i//2])
    result_lst.append(lst[i+1])

print("处理后的列表:", result_lst)

实现的结果如下:

img