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

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)
DrueDrue
上一篇 2018-03-25
下一篇 2018-03-25

相关推荐

  • 关于man的几个重要命令

    接触Linux有很多年了,以前对于linux我觉得自己懂得的还算一般吧,可是听了马哥的关于linux的视频课程,发现自己就是一个还没入门的菜鸟,所以果断的狠心的报了马哥的网络班,拜在马哥旗下,以后就打着马哥的旗号到外面混,哈哈最初的这几天学习,因为工作和时间的等等等的关系,所以才到现在还在赶着写我的博客作业,现在就最有感触的几个命令串联一下。学习linux肯…

    Linux干货 2016-10-31
  • 架构师第一天之:Nginx

    nginx: 诞生背景: prefork机制不能支持过大的并发请求, C10K问题的解决 官方站点: http://nginx.org 二次开发版: tengine,openresty 特性: 模块化设计,较好的拓展性 高可靠性:master/worker架构 支持热部署:不停机更新配置文件,更换日至文件,更新服务器版本 低内存消耗:10000个keep-a…

    Linux干货 2016-10-29
  • Shell脚本编程基础中() (()) [ ] [[ ]] 的使用

    Shell脚本编程基础中() (()) [ ] [[ ]] 的使用 () 生成子进程,括号内的命令将会在子进程中运行,父进程不能够读取在子进程中创建的变量 例: 新建个脚本文件,写入 则执行结果为 $()相当于 ` `  ,返回括号内命令执行结果 (( )) 用作四则运算和逻辑运算,并且支持多个表达式 例: 当 (( )) 加$,则是将获得表达式值,赋值给左…

    2017-11-26
  • btrfs管理及应用

    一. 简介     btrfs有着强大的功能,它支持在多个及各种物理设备(包括RAID)上创建一个文件系统,并支持动态扩展或减小,支持快照功能,甚至快照的快照,支持子卷功能。 二. 如何使用btrfs文件系统?     我的准备材料:3块20G的硬盘 [root@localhost ~]#…

    Linux干货 2015-12-07
  • Apache运行机制剖析

    1. B/S交互过程 浏览器(Browser)和服务器(Web Server)的交互过程:   1、  浏览器向服务器发出HTTP请求(Request)。 2、  服务器收到浏览器的请求数据,经过分析处理,向浏览器输出响应数据(Response)。 3、  浏览器收到服务器的响应数据,经过分析处理,将最终结果显示在浏览…

    Linux干货 2015-04-10
  • 在学习的过程中,我们应该如何获取帮助?

    正文 在学习的过程当中,我们总是遇到不会使用的问题,以各种姿势来获取帮助是一个运维人员的基本要求 在Linux系统中我们获取帮助主要有以下几种方式 1. 使用命令内建的选项来获取帮助 2. 使用man来查看命令使用手册 3. 使用info来查看命令的信息页 4. 查看软件自带的帮助文档 5. 查看软件官方的文档 6. 查看发行版本的文档 7. Google相…

    Linux干货 2016-03-04