Python内置数据结构

Python内置数据结构

数值型

Intfloatcomplexbool

序列对象

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

键值对

集合:set    字典:dict

数值型

Intfloatcomplexbool都是class15.02+3j都是对象即示例

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

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

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

bool:int的子类,仅有2实例truefalse对应10,可以和整数直接运算

类型转换

Int(x)返回一个整数

Float(x)返回一个浮点数

Complex(x)Complex(xy)返回一个复数

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

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

reversetrue,反转,降序

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
下一篇 2018-03-26

相关推荐

  • OpenSSL

    一、什么是OpenSSL 在电脑网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通讯,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。其主要库是以C语言所写成,实现了基本的加密功能,实现了SSL与TLS协议。 OpenSSL由三部分组成:     libencryp…

    Linux干货 2016-04-25
  • N25-第一周 总结

    一、描述计算机的组成及其功能     CPU:包括运算器、控制器、寄存器、缓存,计算枢纽,网络的包处理、磁盘读写、数学计算等。     内存:加载数据,提高计算速度,程序被加载到内存成为进程运行。     输入:键盘、鼠标     输出:打印机、显示器 二、按系列罗列linux的…

    Linux干货 2016-12-05
  • 进程管理

    linux进程管理     内核的功能:进程管理、文件系统、网络管理、驱动程序、安全功能等     Pcrocess:运行中的程序的一个副本,是被载入内存中的一个指令集和         PID:进程…

    Linux干货 2016-09-12
  • linux进程管理及计划任务

    进程管理: 什么是进程?   在Linux系统当中:触法任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,称为PID,同时依据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置。 进程与程序: 程序(program):通常为二进制程序放置在存储媒介中,以物理文件的形式存在。 进程(process):程序被触发后…

    Linux干货 2016-09-13
  • LVS

        Linux虚拟服务器(LVS)是基于Linux内核的操作系统的负载平衡软件。     LVS提供了良好的可扩展性,可靠性和可服务性。 LVS项目的主要工作是开发先进的IP 负载平衡软件(IPVS),应用级负载平衡软件(KTCPVS)和集群管理组件。 IPVS:在…

    Linux干货 2017-08-21
  • rpm包管理

    linux程序包管理 RPM ================================================================== #ldd 查看二进制程序调用的动态链接库 #ldconfig  -p  显示本机已缓存的所有可用库文件     dll: Dynamic…

    Linux干货 2016-08-18