Python内置数据结构

Python内置数据结构

数值型

Int,float,complex,bool

序列对象

字符串:str  列表:list   数组:tuple

键值对

集合:set    字典:dict

数值型

Int,float,complex,bool都是class,1,5.0,2+3j都是对象即示例

Int:python3的int就是长整形,且没有大小限制,受限于内存区域的大小

Float:有整数部分和小数部分组成,实数和虚数组成,支持十进制和科学计数法组成,双精度型。

Complex:有实数部分和虚数组成,实数和虚数都是由浮点数。3+4.2j

bool:int的子类,仅有2实例true,false对应1和0,可以和整数直接运算

类型转换

Int(x)返回一个整数

Float(x)返回一个浮点数

Complex(x),Complex(x,y)返回一个复数

bool(x)返回布尔值,false等价的对象

数字的处理函数

round(),四舍六入取偶

floor()向下取整,ceil()向上取整

Int()取整数部分

//整除且向下取整

math.sqrt()开方

类型判断

type(obj),返回类型,而不是字符串

Instance(obj,class_or_tuple),返回布尔值

列表list

一个队列,一个排列整齐的队伍

列表内的个体称作元素,由若干元素组成列表

元素可以是 任意对象(数字,列表,字符串,对象等)

列表内元素有顺序,可以使用索引

线性的数据结构

可以使用[]表示

列表是可变的

列表list 链表 queue stack的差异

列表可以插入

Queue不可以插入,只能开头和结尾

Stack是覆盖式的,后进先出

链表分散的链表可以随机插入

列表索引访问

索引,也叫下标

正索引:从左到右,从0开始,为列表中的每一个元素编号

负索引:从右到左,从负1开始

正负索引不可以超界,否则引发异常indexerror

为了理解方便,可以认为列表是从左到右排列的,左边是头部,右边是尾部,左边是下界右边是上界

列表通过索引访问

列表查询

Index(value,[start,[stop]])

通过值value,从指定区间查找列表的元素是否匹配

匹配到第一个就立即返回索引

匹配不到就抛出异常valueerror

count(value)

返回列表中匹配的value次数

时间复杂度

Index和count方法都是O(n)

随着列表数据规模的增大,而效率下降

如何返回元素列表的元素个数?如何遍历?如何设计高效?

len()

列表元素修改

list[index] = value

索引不要超界

列表增加,插入元素

append(object)-> none

列表尾部追加元素,返回none

返回none就意味着没有新的列表产生,就地修改

时间复杂度O(1)

Insert(index,pbject)->none

从索引处插入,需要移动位置时间复杂度较高不常用

超越上界,尾部追加。超越下界尾部追加

Extend(iteratale) – > none

将可迭代对象的元素最加进来,返回none

就地修改

+ ->list

链接操作,将两个列表链接起来

产生新的列表,源列表不变

本质上是调用的_add_()方法

*  -list

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

列表删除元素,插入元素

remove() -> none

从左到右查找第一个匹配的value的值,移除该元素,返回none

就地修改

效率不高O(n)

pop([index]) -> item

不指定索引的index,就从列表尾部弹出一个元素

指定索引index,就从索引处弹出一个元素,索引超界抛出indexerror错误

时间复杂度O()

clear() -> none

清除列表的所有的元素,剩下一个空列表

列表的其他操作

reversed() -> none

将列表元素反转,返回none

就地修改

sort(key=none,reverse=false) -> none

对列表元素进行排序,就地修改,默认升序

reverse为true,反转,降序

key一个函数,指定key如何排序

In

[3,4]in[1,2,[3,4]]

For x in [1,2,3,4]

 

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

赞 (0)
zhangmengzhangmeng
上一篇 2018-03-26 19:43
下一篇 2018-03-26 19:47

相关推荐

  • LAMP

    练习:编译安装amp,提供两个基于主机名的虚拟主机      (1) https, 部署pma      (2) 部署wordpress 编译安装: mariadb: # wget 10.1.0.1:/pub/Sources/7.x86_64/mariadb/…

    Linux干货 2016-10-12
  • class13 shell编程(五)软件包管理(三)

    一、shell编程(五) 位置变量补充 shift (踢掉参数) shift                #! /bin/bashecho "1st arg …

    Linux干货 2016-08-24
  • rpm

    软件运行环境 API:Application Programming Interface     POSIX:Portable OS 程序源代码–> 预处理–> 编译–> 汇编–> 链接   &nb…

    Linux干货 2016-08-21
  • N25期—第一周作业

    1、描述计算机的组成及其功能 计算机五大组成部件:运算器、控制器、存储器、输入设备和输出设备。 运算器和控制器统称中央处理器(CPU)。  存储器分成内存储器和外存储器两大类。  外存储器、输入设备和输出设备统称为外部设备。  中央处理器(CPU)  计算机的中央处理器又称为CPU,它是计算机的核心部分。主要由运算器和…

    Linux干货 2016-12-04
  • 脚本编程之循环:for,while,until

    shell中的循环语句一般有: for   while   until 一、for     for 变量名 in 列表;do         循环体     d…

    Linux干货 2016-08-18
  • 磁盘分区磁盘管理及挂载

    磁盘分区 fdisk提供交互式接口管理分区,操作均在内存中完成,没有直接同步到磁盘;直到使用w命令保存至磁盘中。 语法: 1.查看分区使用信息:     fdisk -l [-u] [device…]:列出指定磁盘设备上的分区情况; 2.管理分区    fdisk d…

    Linux干货 2016-08-31