快生活 - 生活常识大全

数据类型串讲中


  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
网站目录投稿:依风