快好知 kuaihz订阅观点

 

Python数据类型串讲(中)

Python数据类型串讲(中)

1、序列

1.1 序列简介

 所谓序列,即元素的有序排列。序列中每个位置的元素都有其对应的唯一编号,也就是说我们可以通过元素的位置标识,去搜索到该元素。python中的内建序列有6种:列表、元祖、字符串、Unicode字符串、xrange对象、buffer对象,其中列表和元祖是最常见的序列,应重点掌握。字符串在上一篇文章中已简单介绍,下面将以字符串为例,对序列的通用操作进行详讲。

1.2 序列通用操作

•            索引(indexing)

               序列的索引即上文介绍的序列元素的位置标识,按标识顺序分为正向递增序号(简称正序)和逆向递减序号(简称逆序)。正序标识即由左往右,索引从0开始递增,索引为0表示第一个元素,索引为1表示第二个元素,以此类推。以变量x="HELLOWORLD!"为例:

               逆序标识即由右往左,索引从-1开始,索引为-1表示逆序第一个元素,索引为-2表示逆序第二个元素,以此类推。以字符串"HELLOWORLD!"为例:

1/10

              根据字符串的索引,我们可以提取出对应位置上的元素,例如需要提取字符"R",可以使用正索引即"x[8]"去提取,也可以使用逆索引即"x[-4]"去提取。

              x="HELLOWORLD!"

#正序提取

x[8]

#逆序提取

x[-4]

               以上代码执行结果为:

              

•            切片(sliceing)

               使用索引提取序列元素不需要新创建变量,非常方便,但使用索引每次只能提取字符串中的单个字符,而实际运用中往往需要一次提取多个字符,这时便可以使用序列的另一特性:切片。切片是指通过序列的索引提取出指定范围内的元素作为新的序列

               语法:obj[startindex:endindex:step]

–           obj:变量名

–           start_index:[可选参数],切片起始索引,默认为0(正序)或-1(逆序)

–           end_index:[可选参数],切片结束索引,默认为最后一个元素对应索引(正序),或第一个元素对应索引(逆序)

–           step:切片步长,默认为1

                注意:序列中切片取值范围为左闭右开,即包含起始索引,不包含结束位置。

              x="HELLOWORLD!"

############ 提取字符"LLO"###########

x[2:5:1]        #使用正索引

x[-10:-7:1]     #使用负索引

x[2:5]          #步长为1时可省略参数step

############ 提取字符"WRD"###########

x[6:11:2]       #使用正索引,步长为2

x[-6:-1:2]      #使用负索引,步长为2

############ 提取字符"LRO"###########

x[-3:-6:-1]     #使用负索引,逆序提取

x[9:6:-1]       #使用正索引,逆序提取

############ 正序提取所有字符##########

x[::]           #三个参数皆可省略

############ 逆序提取所有字符##########

x[::-1]         #步长为-1,不可省略

2/10

              注意:正序提取时,起始索引应小于结束索引;逆序提取时,起始索引应大于结束索引,否则返回值为空序列[]。

•            相加(adding)

               序列中类型相同的序列可以进行加法操作,即把两个或多个序列拼接起来,注意不是数值上的加法运算(元素为数字型时容易混淆)。

              x1="talkis cheap"

x2=","

x3="show me the code"

print(x1+x2+x3)

               以上代码执行结果为:

              

•            相乘(multiplying)

               类似于数学运算上的乘法运算,一个序列乘上一个正整数n,相当于将该字符串重复n次连接成一个新序列

              x="python"

print(x*3)

               以上代码执行结果为:

              

•            元素存在判断

               使用python的关键字“in”或“not in”,可以判断指定元素是否存在该序列中或是否不存在该序列中,满足条件则返回True,不满足条件则返回False 。

              x="python"

"t" inx

"i" inx

               以上代码执行结果为:

              

•            序列相关BIF

–           len():返回序列所含元素的数量

–           max():返回元素中的最大值

3/10

–           min():返回元素中的最小值

              x="python"

len(x)

max(x)

min(x)

               当序列元素的类型是字符串型时,使用max()或min()将对字符串进行按位比较,即对字符串中各元素的ascii码进行比较,输出最大值或最小值。

2、列表

 在对序列有了大体的认识后,现在开始介绍序列中最具代表性的数据类型——列表。

 python中列表以中括号"[ ]"为标识,将一个或多个元素(以逗号分隔)括起来为一个列表,其元素可以为python中任意一种数据类型包括列表本身,且各元素不需要具备相同的数据类型。列表可以简单理解为我们日常生活中超市每天的购物记录,其中每个人的购物记录为列表中的元素,每个人可以购买不同类型的物品,且购买数量往往不一致。

#创建列表x_list

x_list=[2333,"python",["a","b","c"]]

print(x_list)

 以上代码执行的结果为:

 除了上面1.2节介绍的序列通用操作外,列表还有其他一些比较常用的操作。

2.1 元素的更新

2.1.1 元素的修改

 列表通过直接对元素的索引位置赋新值来修改元素

 语法:变量名[需修改元素的索引]=新值

#将变量x_list索引为0的元素修改为2222

x_list[0]=2222

print(x_list)

 以上代码执行结果为:

2.1.2 元素的删除

 列表通过对元素的索引位置,使用del语句来删除列表的元素

 del 列表名[需删除元素的列表]

4/10

#删除变量x_list索引为1的元素

del x_list[1]

print(x_list)

 以上代码执行结果为:

2.2 常用方法

2.2.1 元素的增加

•            append():在列表最后添加一个新的元素

              语法:列表名.append(添加的元素)

              #在列表x_list最后添加元素"MySQL"

x_list.append("MySQL")

print(x_list)

              以上代码执行结果为:

              

              注意:若添加的新元素为列表,append()会保存其列表形式添加到最后

              #在列表x_list最后添加元素["MySQL","SPSS"]

x_list=[2333,"python",["a","b","c"]]

x_list.append(["MySQL","SPSS"])

print(x_list)

               以上代码执行结果为:

              

•            extend():在列表最后添加一个新列表内的多个元素

              语法:列表名.extend(添加的列表)

               与方法append()不同,extend()中添加的元素只能是列表类型,且不保存其列表形式,即将需要添加的列表里的元素一一提取出来后再添加到原列表。

              x_list=[2333,"python",["a","b","c"]]

x_list.extend(["MySQL","SPSS"])

print(x_list)

               以上代码执行的结果为:

5/10

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:Python数据类型串讲  串讲  串讲词条  类型  类型词条  数据  数据词条  Python  Python词条  
综合

 教你解决百度网盘下载限速的问题

百度网盘的下载速度我们就不吐槽了,毕竟人家都说了,要控制成本,至于为了推超级会员而限速我们普通会员的做法,咱也不敢说,咱也不敢问,咱也管不了!眼下咱们要解决的就...(展开)