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 19:43
下一篇 2018-03-26 19:47

相关推荐

  • 计算机的组成及Linux简单介绍

    马哥教育网络班22期第一周练习 计算机概述 进入计算机的世界 计算机 计算机(computer)俗称电脑,是能够按照程序运行,自动、高速出炉海量数据的现代化智能电子设备。由硬件系统和软件系统所组成,计算机的组成遵循冯诺依曼体系。可分为超级计算机、工业控制计算机、网络计算机、个人计算机和嵌入式计算机等五类,较先进的计算机有生物计算机、光子计算机、量子计算机等。…

    Linux干货 2016-08-14
  • 运维的危险命令,用了必死(1)

    Linux命令行佷有用、很高效,也很有趣,但有时候也很危险,尤其是在你不确定你自己在正在做什么时候。这篇文章并不打算引来你对Linux或linux 命令行的愤怒。我们只是想让你意识到在你运行某些命令时应该三思而后行。(译注:当然,以下命令通常都是在root权限下才能将愚蠢发挥到无可救药;在普通用户身份下,破坏的只是自己的一亩三分地。)

    2017-11-16
  • 第六周作业-Vim总结

                    Vim总结 vim功能比较多,这里我不总结vim多窗口,只对基本常用的介绍. 一.模式说明 vim和记事本或WORD不一样,不是一打开后就可以输入文字,此时它处于正常模…

    Linux干货 2017-01-16
  • Linux 系统启动流程及bash 脚本编程练习

    马哥教育网络班23期 第10周课堂练习 Linux 系统启动流程及bash 脚本编程练习1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 2、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区; (1)为硬盘新建两个主分区;并为其安装grub; (2)为硬盘的第一个主分区提供内核和ramdisk文件;为第二个分区提供r…

    Linux干货 2017-01-23
  • N27_网络班第九周作业

    N27_网络班第九周作业 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现 #!/bin/bash loginuser=`grep -v ‘/sbin/nologin’ /etc/passwd | wc -l` nologin=`grep …

    2017-10-10
  • 网络管理及任务进程解析

     网络管理————————————— 一.IP 地址 与路由  1.首先说的是IP地址:       它们可唯一标识IP 网络中的设备,每台主机必须具有唯…

    2017-07-02