list 最为常用的 append,其实执行的是尾插的概念。比如我们要添加的是一些外部数据源(如它们可以是对一台服务器建立的连接),当我们欲实现最近优选的原则时,自然我们希望能够反转整个 list,如下代码演示:

In [1]: cnt  = 10**5In [2]: nums = []In [3]: for i in range(cnt):....:     nums.append(i)....:In [4]: nums.reverse()In [5]: nums[:5]
Out[5]: [99999, 99998, 99997, 99996, 99995]

与其在最后才将整个列表反转,何不在列表创建时,就以一种逆序的方式添加元素,这正是头插法的思路。

In [7]: nums = []In [8]: for i in range(cnt):....:     nums.insert(0, i)....:In [9]: nums[:5]
Out[9]: [99999, 99998, 99997, 99996, 99995]

然而不幸的是,执行头插要比正常的 append 的操作效率低很多,尤其在问题的规模持续扩大,这两个版本之间的差距只会越来越大。

Python 进阶—— list 的头插和尾插相关推荐

  1. 单链表创建以及头插、尾插

    C语言高级进阶 链表是由一系列互相连接的节点组成的数据结构,这种数据结构非常有用,是实现队列和栈的基础. 学习内容 此章我们学习如何创建和使用单链表,如下代码是用来支持链表实现的结构体,Node结构体 ...

  2. 翻转链表II[翻转链表3种方式+dummyHead/头插法/尾插法]

    翻转链表 前言 一.翻转链表中间部分 二.dummyHead&头插法&尾插法 1.一次扫描 + 翻转链表(另一次扫描) 2.一次扫描&头插法&尾插法(进阶) 总结 参考 ...

  3. C语言的双向链表头插法和尾插法,指定节点删除

    文章目录 前言 头插法 尾插法 删除节点 测试代码如下 前言 双向链表和单链表的唯一区别就是多个一个指针域而已,该指针域可以访问链表的上一个节点. 关于构造双向链表的过程我们常见的有两种方法,和单链表 ...

  4. C语言的单链表创建:头插法/尾插法

    文章目录 前言 链表头插法 链表尾插法 源码实现 前言 接下来一段时间,将对数据结构进行复习,总的来说数据结构自大学之后忘记得有点吓人,为了防止脑容量本就小得脑袋更小,必须得持续性得温故了. 链表数据 ...

  5. 计算机软件技术 上海电力学院,上海电力学院 计算机软件技术 实验三 用头插法和尾插法创建线性表...

    上海电力学院计算机软件技术实验三用头插法和尾插法创建线性表 #include #define MAXLEN 9 struct table {int key; int othererm; } ; typ ...

  6. 数据结构学习(二)——单链表的操作之头插法和尾插法创建链表

    http://blog.csdn.net/abclixu123/article/details/8210109 链表也是线性表的一种,与顺序表不同的是,它在内存中不是连续存放的.在C语言中,链表是通过 ...

  7. 头插法和尾插法创建链表(有无头结点)

    头插法和尾插法创建链表(有无头结点) 文章目录 头插法和尾插法创建链表(有无头结点) 1 头插法 1.1头插法建表规则: 1.2 头插法建表代码实现 2 尾插法 2.1 尾插法建表规则: 2.2 尾插 ...

  8. 单链表的头插法和尾插法c语言实现

    /*单链表的头插法和尾插法c语言实现*/ #include <stdio.h> #include <stdlib.h> #include <string.h> #d ...

  9. 数据结构(二)——单链表的头插与尾插

    一.引言 上篇文章我们知道了顺序表的缺点: 插入和删除操作需要移动大量元素. 数组的大小不好确定. 存储分配需要一整段连续的存储空间,不够灵活,造成很多碎片(空闲的空间得不到利用). 所以我们就引入了 ...

最新文章

  1. 【摄像头】摄像机工作原理
  2. jquery中输入验证中一个不错的效果
  3. leetcode 365. Water and Jug Problem | 365. 水壶问题(Java)
  4. 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~三 分部类是否破坏了单一职责...
  5. 目标检测二十年间的那些事儿——从传统方法到深度学习
  6. iOS键盘遮挡输入框,输入区域自动上移
  7. shutdown函数
  8. poj 1125 Floyd简单
  9. 基于STM32音频频谱分析设计方案
  10. 非门芯片 74AHC1G08 74AHC1G04 74AHC1G02的区别
  11. 导师喜欢什么样的“真”研究生?(转科学网)
  12. UDS之浅谈10服务
  13. 「实战」谷歌广告账户可以退款吗?怎么退款?
  14. 前端 - 博客系统(页面设计)
  15. oracle ods平台建立,如何利用Oracle表分区技术建设ODS平台
  16. 从 Spec.到芯片_(数字IC、模拟IC、FPGA/CPLD设计的流程及EDA工具)
  17. Eclipse编程常用快捷键大全
  18. linux的超级酷工具之Emacs
  19. 减肥相当于整容,网友调整饮食和作息后,一个月消脂十二斤
  20. android mvp mvvm ppt,还在用 MVP?快来试试 MVVM! Relight:轻量级 MVVM 框架

热门文章

  1. Redis之 介绍和安装
  2. php 提取字的首字母,PHP提取中文首字母_php技巧
  3. 代理模式 委派模式 策略模式_委派模式和策略模式
  4. python控制excel选择区域_python操作excel常用的方法
  5. SharpDevelop--一款很不错的.NET开发工具
  6. 给postmessage加上callback方法
  7. Educational Codeforces Round 62(CF1140)
  8. BZOJ.2679.Balanced Cow Subsets(meet in the middle)
  9. JavaScript基础和记背内容 Day1
  10. vw vh vm CSS长度单位