Python 每日一题(合并排序列表数据)

该博客介绍了如何使用Python合并两个已排序的整数列表,并保持排序。通过遍历和比较两个列表中的元素,将较小的元素添加到新列表,直至其中一个列表遍历完,然后将另一个列表的剩余部分添加到新列表中。示例代码展示了如何实现这个功能,并给出了多个测试用例。
摘要由CSDN通过智能技术生成

Python 每日一题:锻炼Python语法的运用,思维逻辑的锻炼,算法能力的培养。


题目:

   合并2个升序的整数列表A和B,形成一个排序后的列表。如:A=[1, 3, 5],B=[2, 4, 6, 8, 10],输出排序后的列表 [1, 2, 3, 4, 5, 6, 8, 10],并返回。

分析:

  1、遍历2个列表,比较2个列表中的数,将其添加至新的列表中。

  2、若短的列表遍历完,则长的列表继续循环向新的列表中添加剩余的数。

实现:

def merge_list(list1, list2):
    '''
        合并两个有序列表到新的列表中
    :param list1: 有序列表1
    :param list2: 有序列表2
    :return: 一个新的有序列表
    '''
    i, j = 0, 0       # 记录两个有序列表的索引
    new_list = []     # 存放有序列表的新列表
    while i < len(list1) and j < len(list2):  # 比较两个列表的值
        if list1[i] < list2[j]:        # 第1个列表中的数比第2个列表中的数大
            new_list.append(list1[i])
            i += 1
        else:                          # 第1个列表中的数比第2个列表中的数小
            new_list.append(list2[j])
            j += 1

    while i < len(list1):              # 短列表剩余的数添加至新列表中
        new_list.append(list1[i])
        i += 1

    while j < len(list2):              # 短列表剩余的数添加至新列表中
        new_list.append(list1[j])
        j += 1

    return new_list

A = [2, 4, 7]
B = [1, 3, 5, 7]
C = [2, 6]
print(merge_list(A, B))
print(merge_list(B, C))
print(merge_list(A, C))

结果:

[1, 2, 3, 4, 5, 7, 7]
[1, 2, 3, 5, 6, 7]
[2, 2, 4, 6, 7]

结语】以上整个程序的实现逻辑,还存在很多不全面的地方,欢迎各位大佬指点;如果觉得笔者不易,请给予点赞,给予我记录更多文章的动力!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值