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

相关推荐

  • N27—第十周作业

    N27_第十周作业 1、请详细描述Centos系统的启动流程(详细到每个过程系统做了哪些事情) 详情请参考http://www.178linux.com/85713 2、为运行于虚拟机上的Centos 6添加一块新的硬盘,提供两个主分区; (1)为硬盘新建两个主分区;并为其安装grub (2)为硬盘的第一个主分区提供内核和ramdisk文件;为第二个分区提供…

    Linux干货 2017-10-21
  • N25第九周作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash declare -a usersh nologin=0 login=0 usersh=($(cut -d’:’ -f7 /etc/passwd)) ##数组赋值时需…

    Linux干货 2017-03-04
  • 网络N23期第四周grep

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -R /etc/skel /home/tuser1 && chmod g-r,o-r /home/tuser1 [root@localhost ~]# ls -l…

    系统运维 2016-12-05
  • GNU awk基础

    awk介绍 awk:Aho, Weinberger, Kernighan,报告生成器,格式化文本输出 有多种版本:New awk(nawk),GNU awk( gawk) gawk:模式扫描和处理语言 基本用法: awk [options] ‘program’ var=value file… awk [options] -f programfile var=…

    Linux干货 2018-01-01
  • 基于mysql数据库的日志分析系统

    现如今,日志已经成为了我们分析系统及相关服务的一个重要工具。而日志也具有其相对较为固定的格式以便于进行统计查询。其大致格式如下: 日期时间            主机      &…

    Linux干货 2016-10-23
  • bind-9.9.5编译安装

    bind-9.9.5编译安装 §·bind-9.9.5编译安装大概步骤 步骤一 :下载源码包bind-9.9.5 ; 步骤二 :按需求选择模块或功能 ./configure ;  # ./configure  –prefix=/usr/local/bind9  –sysconfdir=…

    Linux干货 2016-10-09