我觉得不用抄书上的代码。

遇到实现问题,应该结合python本身的功能去解决。

比如,当合并有序列表时,为什么一定要一项一项比较,而不是使用list的sort函数呢?

# coding = utf-8

# 两个有序列表的合并,将a_list合并到b_list
# 如果是三个序列或是N个列表的合并呢?
def merge_order_list(one_list, *more_list):
    for i in range(len(more_list)):
        for item in more_list[i]:
            one_list.append(item)
            one_list.sort()
    return one_list

if __name__ == '__main__':
    list1 = [2, 4, 6, 89, 342, 658]
    list2 = [1, 4, 6, 34, 89, 321, 546, 4332]
    list3 = [77, 567, 3487]
    list4 = [8, 45, 89, 243, 765, 962]
    merge_list = merge_order_list(list1, list2, list3, list4)
    print(merge_list)

  

C:\Users\Sahara\.virtualenvs\test\Scripts\python.exe C:/Users/Sahara/PycharmProjects/test/python_search.py
[1, 2, 4, 4, 6, 6, 8, 34, 45, 77, 89, 89, 89, 243, 321, 342, 546, 567, 658, 765, 962, 3487, 4332]

Process finished with exit code 0

  

python---实现多个有序列表的合并的更多相关文章

  1. python---手动实现两个有序列表的合并

    可能又和标准的实现不一样, 但是自己的实现, 印象就会不一样的. # coding = utf-8 # 两个有序列表的合并,将two_list合并到one_list def merge_order_l ...

  2. Python中将字典转换为有序列表、无序列表的方法

    说明:列表不可以转换为字典 1.转换后的列表为无序列表 a = {'a' : 1, 'b': 2, 'c' : 3} #字典中的key转换为列表 key_value = list(a.keys()) ...

  3. 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表

    python操作redis缓存-SortSet有序集合类型,可以理解为有序列表 有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值, ...

  4. Python面试题目之打乱打乱有序列表

    # 要求打乱一个有序列表 # 待处理列表 L1 = [11,22,33,44,55,66,77,] 方法: # 引入random模块,该模块的shuffle方法见下图 import random L1 ...

  5. python基础练习题(题目 有序列表插入元素)

    day26 --------------------------------------------------------------- 实例039:有序列表插入元素 题目 有一个已经排好序的数组. ...

  6. python 数据类型: 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary

    #python中标准数据类型 字符串String 列表List 元组Tuple 集合Set 字典Dictionary 铭记:变量无类型,对象有类型 #单个变量赋值 countn00 = '; #整数 ...

  7. 我教女朋友学编程html系列(7)—Html无序列表、自定义列表、有序列表及常用例子

    昨天写的那篇文章<我教女朋友学编程Html系列(6)—Html常用表单控件>,基本上有1000人左右看了,那边文章是我站在前人的肩膀上修改来的,添加了截图和说明,合并了例子,使之更容易被初 ...

  8. 今天学习了无序列表和有序列表和使用HTML5创建表格

    ol建立有序列表,该列表可以用设置type="A/a" 其语法架构为 <ol> <li></li> <li></li> ...

  9. 【python基础】之list列表

    python提供了一个被称为列表的数据类型,他可以存储一个有序的元素集合. 记住:一个列表可以存储任意大小的数据集合.列表是可变对象,有别于字符串str类,str类是不可变对象. 1.创建一个列表 l ...

随机推荐

  1. platform模块

    import platform ''' python中,platform模块给我们提供了很多方法去获取操作系统的信息 如: import platform platform.platform() #获 ...

  2. (转载)ECCV 2018:IBN-Net:打开域适应的新方式

    (本文转自极视角) 本文由香港中文大学发表于ECCV2018,论文探索了IN和BN的优劣,据此提出的IBN-Net在语义分割的域适应任务上取得了十分显著的性能提升. 论文地址:https://arxi ...

  3. k64 datasheet学习笔记11---Port Control and Interrupts (PORT)

    1.前言 Port Control and Interrupt (PORT)  模块提供了port control,digital filtering,和外部中断功能 每个pin的大部分功能可被独立配 ...

  4. Unity3D动态生成多边形

    来自https://blog.csdn.net/qq_14903317/article/details/69668521 自由绘制多边形   https://blog.csdn.net/lei_710 ...

  5. SeaJS:一个适用于 Web 浏览器端的模块加载器

    什么是SeaJS?SeaJS是一款适用于Web浏览器端的模块加载器,它同时又与Node兼容.在SeaJS的世界里,一个文件就是一个模块,所有模块都遵循CMD(Common Module Definit ...

  6. cocos2dx 3.x 修改NDK_ROOT、ANDROID_SDK_ROOT、ANT_ROOT路径

    CMD到setup.py目录 Python setup.py -h 查看帮助: Options:  -h,--help            showthis help message and exi ...

  7. node+vue报错合辑

    vue 1.This is probably not a problem with npm. There is likely additional logging output above. npm ...

  8. C/C++中如何在main()函数之前执行一条语句?

    在C语言中,如果使用GCC的话,可以通过attribute关键字声明constructor和destructor(C语言中如何在main函数开始前执行函数) #include <stdio.h& ...

  9. 修改Mysql5.7的root密码

    Mysql5.7修改root密码 禁用root密码 1.修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不 ...

  10. CentOS7图形界面与命令行界面切换(转载)

    在图形界面使用 ctrl+alt+F2切换到dos界面 dos界面 ctrl+alt+F2切换回图形界面 在命令上 输入 init 3 命令 切换到dos界面 输入 init 5命令 切换到图形界面 ...