Python 数据结构

python 内置数据结构python 内置数据结构
数字的处理函数:

round() 五舍六入       2.5  2     2.6    3

floor() 向下取整       2.5  2     2.6    2

ceil() 向上取整       2.5  3     2.6    3

min() 取最小的       1,2,3      1

max() 取最大的   1,2,3      3

pow(2,3)   2的n次方    2**3   =   8

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

list

一个队列,一个排列整齐的队伍 列表内的个体称作元素,由若干元素组成列表 元素可以是任意对象(数字,字符串,对象,列表) 列表内元素有序,可以使用索引 线性的数据结构 使用[]表示 列表是可变的
列表的定义及初始化 list() lis=[1,2] lis=[]
列表索引访问 list[index]
列表的查询 index(value,[start,[stop]])
列表元素修改 list[index]=value
列表增加,插入元素

lis.append(object)  尾部增加

lis.insert(index.object)

在指定索引index处插入元素 + 连接操作,将两个劫镖连接起来 * 重复操作,将列表元素重复n次。返回新的列表
列表元素删除

lis.remove(value) lis.pop()   不指定从列表尾部弹出一个元素,指定就从索引处弹出以恶搞元素 lis.clear() 清楚列表所有元素,剩下一个空列表
列表其他操作

lis.reverse() 将列表元素反转,就地修改

lis.sort(key=None,reverse=False)   排序默认不反转
列表复制 浅copy(只是复制引用而已) 和 深copy
随机数:为随机 random 模块

random.randint(1,10)  随机1-10之间的整数

random.choice([1,2,3,4])或者(range(9)) ()括号是非空序列集合,然后随机挑选一个 random.randrange(1,10,2) 从一到10每次加2随机

randmon.shuffle(list) 就地打乱列表元

元组

元组是一个有序的元素组成的集合,使用()表示,元组是不可变对象 元组是只读的,所以增,改,删方法都没有

t=() 定义一个空元组

t=(1,) 一个元素元组的定义元组

元素的访问 支持正负索引

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

负索引:从右至左,从-1开始

t=(9,8,6,5,3,4) t[2]=6 t[-4]=6

元素查询

t=(9,8,6,5,3,4,3) 根据value查询          开始索引  到 停止索引

t.index(3)  t.index(3,   1,        7)

返回列表中匹配value的次数 count(value) t.count(3)

返回元素的个数

len(tuple)

len(t)

命名元组   namedtuple  意思是一个命名的元组,返回一个元组的子类,并定义字段 namedtuple(typename,field_names,verbose=False,rename=False) 类型名称   字段 详情名打印     允许修改名字

字符串

一个个字符组成的有序的序列,是字符的集合 使用单引号,双引号,三引号引住的字符序列 字符串是不可变对象

‘dddd’ “sssss”  ”’dasdsadas”’ python3起,字符串就是Unicode类型
字符串的定义 初始化

str1 = ‘wwww.cofk’
字符串元素访问 — 下标 字符串支持使用索引访问

sq = “select * from user where name=’tom'” sq[4] = c
字符串join连接

string.join(iterable)

a = ‘asdf’ ‘,’.join(a) ->> ‘a,s,d,f’

字符串 + 连接

a = ‘asdf’ b = ‘fdsa’ a + b –>> ‘asdffdsa’
字符串分割

split(sep=None,maxsplit=1) 从左到右  sep 指定分割字符串,缺省的情况下空白字符串作为分隔符 maxsplit 指定分割的次数,-1 表示遍历整个字符串

rsplit(sep=None,maxsplit=-1) 从右到左 sep 指定分割字符串,缺省的情况下空白字符串作为分隔符 maxsplit 指定分割的次数,-1 表示遍历整个字符串

splitlines([keepends])

按照行来切分字符串 keepends 指的是是否 保留行分隔符 行分隔符包括 \n \r\n \r字符串分割*    partition(sep) > 返回的是一个元组 从左至右,遇到分隔符就把字符串分割成两部分,返回头,分隔符,尾三部分的三元组,如果没有找到分隔符,就返回2个空元素的三元组 sep 分割字符串 必须指定
rpartition(sep) –>> (head,sep,tail)
字符串大小写

upper() 全大写

lower() 全小写

swapcase()  交互大小写
字符串排版

title() 标题的每个单词都大写

capitalize 首个字母大写

center(width[,fillchar])

zfil(width)

ljust(width[,fillchar])

rjust(width[,fillchar])

字符串修改

replace(old,new[,count])

‘www.magedu.com’.

replace(‘w’,’p’) 把所有的W都替换成p

‘www.magedu.com’.replace(‘w’,’p’,2) 把第1个和第2个W换成p

‘www.magedu.com’.replace(‘w’,’p’,3) 把 第1,2,3个W换成p

‘www.magedu.com’.replace(‘ww’,’p’) 把两个w换成一个p

‘www.magedu.com’.replace(‘www’,’python’,2) 把3个w替换成python
strip([chars]) 从字符串两端除去指定的字符集chars中的所有字符 如果没有指定,去除两端的空白字符 lstrip([chars]) 从左边开始

rstrip([chars]) 从右边开始

字符串查找

find(sub[,start[,end]]) 在指定区间[start,end],从左到右,查找子串sub,找到返回索引,没有找到返回-1
rfind(sub[,start[,end]]) 在指定区间,从右到左查找
str.find(” “,5) 从5开始

str.find(” “,5,11) 从5开始到11结束
str.index(sub[,start[,end]])
count(sub[,start[,end]]) 从左到右,统计子串sub出现的次数 str.count(‘s’) str.count(‘s’,5)
endswith(suffix[,start[,end]])  字符串是否以suffix结尾 startwith(prefix[,start[,end]]) 字符串是否以prefix开始
字符串判断

isanum() 判断是否是字母和数字组成

isalpha() 判断是否是字母

isdecimal() 是否只包含十进制数字

isdigit() 是否全部是数字

isidentifier() 是不是字母和下划线开始

islower() 判断是否小写

isupper() 判断是否大写

isspace() 是否只包含空白字符

字符串格式化 字符串的格式化是一种拼接字符串输出样式的手段,更灵活方便

‘l am %03d’%(20) –>> ‘l am 020’

‘l like %s.’%’Python’
format 函数式字符串语法 — python 鼓励使用

“{} {}”.format(*args,**kwargs) — str

{}  花括号表示占位符 位置参宿

“{}:{}”.format(‘192.16.1.1′,8888) 关键字或命名参数 “{server} {1}:{0}”.format(8888,’192.168.1.1’,server=”Web Server info:”)

访问元素

“{0[0]}.{0[1]}”.format((‘magedu’.’com’))
“{0}*{1}={2:<2}”.format(3,2,6) “{0}*{1}={2:02}”.format(3,2,2*3)

bytes、bytearr

bytes和bytearray 是Python3引入两个新的类型 bytes   是不可变字节序列 bytearray   字节数组 可变
字符串与bytes

字符串是字符组成的有序序列,字符可以使用编码来理解 字符串按照不同的字符集编码encode返回字节序列bytes
字节序列按照不同的字符的字符集解码decode返回字符串

bytes定义

bytes()  空bytes

bytes(int) 指定字节的bytes,被0填充

bytes(iterable_of_ints)–>>bytes[0,255]的int组成的可迭代对象

bytes(string,encoding[,errors])–>> bytes 等价于string.encode() bytes(bytes_or_buffer)–>>immutable copy of bytes_or_buffer  从一个字节序列或者buffer复制一个新的不可变的bytes对象
使用b前缀定义 bytes 操作 和str类型类似,都是不可变类型,所以方法很多一样,只不过bytes的方法输入是bytes,输出是bytes
替换操作:

b”abcda”.replace(b’f’,b’k’)

查找操作:b”adsd”.find(b’b’)
hex()   返回16进制表示的字符串

bytearray bytearray()  空bytearray

bytearray(int) 指定字节的bytearray,被0填充

bytearray(iterable_of_ints)–>>bytearray[0,255]

bytearray(string,encoding[,errors]) bytearray

近似string.encode() 不过返回可变对象 bytearray(bytes_of_buffer) 从一个字节序或buffer复制出一个新的可变的bytearray对象
bytearray  操作

bytearray(b’abcdef’).replace(b’f’,b’k’)

bytearray(b’abc’).find(b’b’) hex()   返回16进制的字符串

bytearray(‘abc’.encode()).hex() 索引

bytearray(b’adfds’)[2]   返回该自己对应的数,int类型

append(int) 尾部追加一个元素 inster(index,int) 在指定索引位置插入元素

extend(iterable_of_ints) 将一个可迭代的整数集合追加到当前bytearray
pop(index=-1) 从指定索引上移除元素,默认从尾部移除

remove(value) 找到第一个value移除,找不到抛ValueError 异常

clear() 清空bytearray reverse()

翻转bytearray,就地修改

线性结构

可迭代 for…in.. len() 可以获取长度 通过下标就可以访问

可以切片 列表 元组 字符串 bytes bytearray
切片 通过索引区间访问线性结构的一段数据 sequence[start:stop] 表示返回[start,stop)区间的子序列 支持负索引 start为0,可以省略 stop为末尾,可以省略 start一定要在stop的左边 [:] 表示从头至尾,全部元素被取出,等效于copy()方法
步长切片 [start:stop:setp] step 为步长,可以正,可以负,默认是1 step要和start:stop同向,否则返回空序列

 

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

(0)
5220367552203675
上一篇 2017-09-23
下一篇 2017-09-23

相关推荐

  • Hadoop hdfs分布式文件系统

    一、MapReduce理论基础 每个MapReduce job都是Hadoop客户端想要执行的一个工作单元,它一般由输入数据、MapReduce程序和配置信息组成,而Hadoop会把每个job分隔成两类任务(task):map任务和reduce任务。在Hadoop集群中有两类节点来执行两类job进程的执行 1.1 大数据处理 任何基础业务包含了收集、分析、监…

    2017-12-08
  • select和case用法

    一、作业 1、斐波那契数列又称黄金分割数列,因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2) 写一个函数,求n阶斐波那契数列 2、汉诺塔(又称河内塔)问…

    Linux干货 2016-08-21
  • 【26期】Linux第五周学习小总结

        第五周的学习内容很丰富, 从查找到压缩打包,到软件包的管理,其中尤其是以压缩的内容最为丰富,而且庞大的选项让人绝望,那我今天就总结了一下压缩的一些东西,和大家一起分享。     为什么会产生压缩工具呢?因为我们的现在的很多文件会利用到的东西很多,电脑的读存速度也越来越快,一些大的文件在传输和使用上就会很麻烦,虽…

    2017-08-12
  • linux文件查找和压缩

    locate          非实查找,查找是根据全系统文件数据库进行的,                  #updatedb, 手动生成数据库,  locate查找速度快 find : &nbs…

    Linux干货 2017-03-04
  • MYSQL高级运用-MHA(提供主从复制高可用,主节点故障时,进行故障转移)

    MHA的介绍、重用工具;
    MHA的安装;
    搭建MYSQL主从复制架构,运用MHA实现其高可用,主节点故障时,进行故障转移;并恢复整个架构;

    2017-09-24
  • ​Bash2

    字串比较时变量最好使用"" 这样就不会报错了,只是退出码不为0 组合条件:     与:[ condition1 -a condition2 ]或condition1 && condition2     或:[ condition1 -o co…

    Linux干货 2016-09-25

评论列表(1条)

  • manbinn
    manbinn 2017-09-24 10:06

    内容中byte、bytearry标头漏掉了一个’y’字母,bytes、bytearr