Python 进阶—— list 的头插和尾插
2016-03-21 07:44
686 查看
list 最为常用的 append,其实执行的是尾插的概念。比如我们要添加的是一些外部数据源(如它们可以是对一台服务器建立的连接),当我们欲实现最近优选的原则时,自然我们希望能够反转整个 list,如下代码演示:
与其在最后才将整个列表反转,何不在列表创建时,就以一种逆序的方式添加元素,这正是头插法的思路。
然而不幸的是,执行头插要比正常的 append 的操作效率低很多,尤其在问题的规模持续扩大,这两个版本之间的差距只会越来越大。
In [1]: cnt = 10**5 In [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高级:细说Python浅拷贝和深拷贝
- Python高级:细说Python浅拷贝和深拷贝
- Python操作XML和TXT
- Python读取ini文件
- Python操作XML
- Python之isinstance
- Python体验(10)-图形界面之计算器
- Python多版本共存之pyenv
- python中数据的保存
- python编码及文件编ASCII,Unicode和UTF-8相关知识
- python之map、filter、reduce函数
- Python中的条件判断语句与循环语句用法小结
- Python中的条件判断语句与循环语句用法小结
- vim配置
- python 小技巧
- Python 内置函数
- 关于windows安装python过程中出现error 2503 2502错误的解决方法
- 笔记:HeadFirstPython(4)持久存储
- python Image库使用入门
- 举例讲解Python中的迭代器、生成器与列表解析用法