我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python 进阶—— list 的头插

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python 进阶—— list 的头插

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

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 的操作效率低很多,尤其在问题的规模持续扩大,这两个版本之间的差距只会越来越大。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python 进阶—— list 的头插

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python 进阶—— list 的头插

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

python函数的进阶

1. 动态传参 *, ** : 形参: 聚合 位置参数* -> 元组 关键字** -> 字典 实参: 打散
2023-01-30

Python进阶之如何快速将变量插入有序数组

在我们学习python的过程中,学习序列是一门必修课。本文我们就来一起看一看Python是如何快速将变量插入有序数组的,感兴趣的可以了解一下
2023-05-16

用Python实现单链表的头插法与尾插法

以下代码由python3实现,欢迎大家来讨论import random as rdclass Linklist(object): def __init__(self,data,next=None): self.data
2023-01-31

小白的python进阶历程------0

作为一名小白, 在此仅分享一下自己学习python的过程,如有遗漏或是不对的地方欢迎批评指导(注:本文只针对新手小白,各路大神请谨慎观看,谢谢)注:使用版本python3.7,编辑器pycharm(以下所有代码仅适用于python3,下载及
2023-01-30

Python进阶学习之你真的懂元组吗?

在我们学习python的过程中,对元组的介绍通常是成为”不可变的列表“,但是这其实并没有完全的概括元组的功能。在本文中,我们将会介绍元组作为记录的功能,话不多说我们开始吧
2023-05-16

Python进阶:切片的误区与高级用法

2018-12-31 更新声明:切片系列文章本是分三篇写成,现已合并成一篇。合并后,修正了一些严重的错误(如自定义序列切片的部分),还对行文结构与章节衔接做了大量改动。原系列的单篇就不删除了,毕竟也是有单独成篇的作用。特此声明,请阅读改进版
2023-01-30

python进阶用法3 【优化毫不起眼的

这篇博客提及三个关于python循环的优化细节,如有其他一些优化的方案,欢迎留言分享~QWQ在谈这个环节之前,我们先回顾一波何为生成器及何为yield要理解yiled还需要理解生成器,而要理解生成器,首先需要理解迭代器。迭代器:所有你可以用
2023-01-31

Python中的数学运算操作符使用进阶

Python中对象的行为是由它的类型 (Type) 决定的。所谓类型就是支持某些特定的操作。数字对象在任何编程语言中都是基础元素,支持加、减、乘、除等数学操作。 Python的数字对象有整数和浮点数,支持各种数学操作,比如+, -,*, /
2022-06-04

Python函数进阶的使用方法实例分析

今天小编给大家分享一下Python函数进阶的使用方法实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、函数的命名空间
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录