内置数据结构,列表及其方法

List:列表有若干个元素,元素可以是任意对象,元素有顺序,可以使用索引和迭代,使用线性结构,使用[ ]进行描述,在内存中的空间是连续的,每个元素在内存中的空间是一样的………列表是可变的,列表不能一开始就定义大小,列表索引不可以超界

 

列表索引l.index(),从左向右搜索,发现第一个匹配的,自动返回搜索的值的索引;匹配不到,抛出异常ValueError

l.count()返回列表中匹配的值的次数

时间复杂度:index和count方法都是O(n)随着列表数据规模的增大,而效率下降

Insert(index,object)->None,时间复杂度也是O(n),索引可超界,超越上界,尾部追加,超越下界,头部追加: append()时间复杂度为O(1)

内存模型比方法重要

几种序列的区别:list可以进行中间插队,元素可进行挪动;

queue不能进行中间插队,只能在开头或者结尾加入或者拿出元素,也可进行索引

stack:只能后进先出(栈,类似于落盘子)

链表:手拉手模型

可迭代和可索引是两个概念,是不一样的

方法:

index(value,[start,[stop]]):通过value对列表进行查找,匹配第一个立即返回索引,匹配不到,抛出异常

list[index]=value: 对列表中的索引项元素进行修改

list.append(object): 尾部进行元素追加,返回none,没有新列表生成,就地修改

list.insert(index,object): 在指定位置插入元素,返回值为none,没有新列表产生,就地修改,超越上界,尾部追加,超越下界,头部追加

list.extend(iteratable): 将可迭代对象追加进来,就地修改,返回值为none

+ : 将两个列表链接起来,产生新列表,原列表不变,本质上调用add方

*: 重复操作。将本列表元素重复n次,返回新的列表

list.remove(value): 从左到右查找第一个匹配value的值,移除该元素,返回none,就地修改

list.pop([index]): 不指定索引index时从尾部弹出一个元素,指定索引index时,就从索引出弹出一个元素,索引超界抛出indexerror错误

l.clear():清除列表所有元素,剩下一个空列表

l.reverse():将列表元素进行反转,返回none,就地修改

l.sort(key=functionname,reverse=False) :对列表元素进行排序,就地修改,默认升序;reverse为True,反转,降序;key为一个函数,指定如何排序

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

附:

Round() —–四舍六入,五取偶(正负一样,不用考虑正负)

Round(-2.5,-2.5001)—-(-2,-3)

Print中取整计算//按floor计算

 

Floor计算结果取地板

Ceil计算结果取天花板

Math.floor(2.5)—–2

Math.floor(-2.5)—–(-3)

Math.ceil(2.5)—–(3)

Math.ceil(-2.5)—-(-2)

Int(2.5)——(2)

Int(-2.5)——(-2)

 

二进制bin () 返回字符串

八进制oct()返回字符串

十六进制hex()返回字符串

Math.Factorial(n)整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,0的阶乘为1。即:n!=1×2×3×…×n。

 

类型判断:

Type’a’==str

Isinstance(123,int)返回true

Isinstance(123,(int,float,complax))返回true

 

Type(1+false)返回int;bool为int的子类(其中存在数值类型的隐式转换)

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92880

(0)
上一篇 2018-03-25 16:58
下一篇 2018-03-25 21:44

相关推荐

  • Linux磁盘和文件系统管理

      Linux磁盘和文件系统管理.pdf Part.I 磁盘管理 1.cfdisk   #图形化的很简单. 不知道你们用什么 反正我喜欢这个 ^_^ cfdisk – display or manipulate disk partition table 必要参数的具体说明如下: -a用箭头表示选取,而不是以反白表示 …

    Linux干货 2016-04-05
  • LINUX系统文件类型分类

    使用LINUX过程中,时常会对文件进行操作。但是linux中文件究竟有哪些分类呢?今天让我们大家来总结一下吧! 概述:         linux文件可以分为五种类型,分别为:普通文件、目录、字符设备或块设备、套接口文件、符号链接文件。下面详细介绍这几种文件。 1 普通文件[root@lo…

    Linux干货 2017-07-22
  • 一张图认识开源世界

    开源精神:自由,创新,团结,互助,友爱,积极,进取。在开源环境下也产生了很多优秀的软件,让我们通过一幅图认识一下开源世界里的大咖们! 看图识物     墙上挂的牛头:伟大的开源计划GNU Wiki:http://zh.wikipedia.org/zh-cn/GNU     墙上日历上的信封标志:经典的linux下的邮件…

    Linux干货 2015-03-20
  • yum详解及源码包的编译安装

    yum的功能:     在我们使用rpm包安装程序时,各个程序包之间可能存在非常严重的依赖关系,这就导致我们在安装一个包的同时还需要安装其他存在依赖关系的包,因此我们可以使用rpm包的前端管理工具yum,可通过yum所支持的文件共享机制来解决各个rpm包之间的依赖关系。 yum仓库的配置文件:   …

    Linux干货 2016-08-25
  • 关于大型网站技术演进的思考(六):存储的瓶颈(6)

    原文出处: 夏天的森林  在讲数据库水平拆分时候,我列出了水平拆分数据库需要解决的两个难题,它们分别是主键的设计问题和单表查询的问题,主键问题前文已经做了比较详细的讲述了,但是第二个问题我没有讲述,今天我将会讲讲如何解决数据表被垂直拆分后的单表查询问题。 要解决数据表被水平拆分后的单表查询问题,我们首先要回到问题的源头,我们为什么需要将数…

    2015-03-11
  • git

    1.1 Git的安装 1.1.1 版本 # cat /etc/redhat-release CentOS release 6.8 (Final) # uname -r 2.6.32-642.4.2.el6.x86_64 # uname -m x86_64 1.1.2 安装 可以直接通过源码安装。先从Git官网下载源码,然后解压,…

    Linux干货 2016-10-31