day31
数值(序列化倒序)
对于一个数组倒序后,输出。
分析
列表对半,首尾交换直到对半处。
原列表:[8, 2, 5, 1, 4, 7]
第1步:[7, 2, 5, 1, 4, 8]
第2步:[7, 4, 5, 1, 2, 8]
第3步:[7, 4, 1, 5, 2, 8]
编码实现
1.编码实现(传统遍历方法实现)
import random
lst=[n for n in random.sample(range(10), 10)]
print(f"原列表:{lst}")
n=len(lst)
halfn=n//2
for i in range(halfn):
lst[i],lst[-i-1]=lst[-i-1] , lst[i]
print(f"第{i+1} 步:{lst}")
运行结果
原列表:[7, 0, 1, 2, 5, 8, 9, 3, 6, 4]
第1 步:[4, 0, 1, 2, 5, 8, 9, 3, 6, 7]
第2 步:[4, 6, 1, 2, 5, 8, 9, 3, 0, 7]
第3 步:[4, 6, 3, 2, 5, 8, 9, 1, 0, 7]
第4 步:[4, 6, 3, 9, 5, 8, 2, 1, 0, 7]
第5 步:[4, 6, 3, 9, 8, 5, 2, 1, 0, 7]
2.编码实现(利用列表特性实现)
import random
lst=[n for n in random.sample(range(10), 10)]
print(f"原列表:{lst}")
print(f"倒列表:{lst[::-1]}")
运行结果
原列表:[1, 2, 4, 0, 6, 5, 8, 9, 7, 3]
倒列表:[3, 7, 9, 8, 5, 6, 0, 4, 2, 1]