python 练习题-列表排序
题目:
1 ''' 2 列表a和列表为正向有序列表,要求,生成一个新的列表,使a和b中值有序排序 3 ''' 4 a = [3,5,7,11,19,66] 5 b = [0,2,7,9,10,20,30]
1.可直接使用 sort方法排序
1 ''' 2 列表a和列表为正向有序列表,要求,生成一个新的列表,使a和b中值有序排序 3 ''' 4 a = [3,5,7,11,19,66] 5 b = [0,2,7,9,10,20,30] 6 7 s = a+b 8 print(s.sort())
2.一个一个比
略
3.因为a和b的值都是有序排序的,可将a和b的第一个值相比,小的拿出来,并删除,然后再去比;如果其中一个列表没有值了,可以直接放到新的列表中
1 # @Author :whyCai 2 # @Time :2021/1/24 11:14 3 4 5 ''' 6 列表a和列表为正向有序列表,要求,a和b有序排序 7 ''' 8 a = [3,5,7,11,19,66] 9 b = [0,2,7,9,10,20,30] 10 11 c = [] 12 while True: 13 i = len(a) 14 j = len(b) 15 if i > 0 and j > 0: 16 if a[0] <= b[0]: 17 c.append(a[0]) 18 a.pop(0) 19 else: 20 c.append(b[0]) 21 b.pop(0) 22 elif i == 0 and j != 0: 23 c = c + b 24 b = [] 25 elif i != 0 and j == 0: 26 c = c + a 27 a = [] 28 else: 29 break 30 31 print(c)