【原】Python基础-序列

1 序列

在Python中,最基本的数据结构是序列,序列中每个元素被分配一个编号,也称为索引。第一个索引为0,第二个则是1,以此类推。序列中最后一个元素被标为-1,倒数第二个元素被标为-2,以此类推。

2 Python内建序列

Python包含6种内建序列,分别是列表,元组,字符串,UNICODE字符串,BUFFER对象和XRANGE对象。开始重点关注列表和元组。

3 列表和元组(序列)

列表和元组一个很重要的区别是,列表可以修改,元组则不能被修改。几乎所有情况下列表都可以替代元组,但有一个列外情况,使用元组做为字典的键,在这种情况下,因为键不能被修改,所以不能使用列表。

4 序列的通用操作

所有序列类型都可以进行某些特定操作,包括索引,分片,加,乘和检查某个序列是否属于序列成员。另外还有计算序列长度,找出最大元素最小元素的内建函数。

  4.1索引

  序列中所有元素都是有编号的,从0开始递增,这些元素可以通过编号来访问,比如下面的例子

  s = ("xxxxx", "yyyy")

      print(s[0])

  输出是 "xxxxx"

  4.2 分片

  跟索引访问序列中的元素相似,但是用来访问序列中一定范围的元素。分片通过冒号相隔的俩个索引值来实现s[Index1:Index2]。一般通过分片来提取序列中的一部分元素。Index1是需要提取部分的第一个元素的编号,Index2是分片之后剩余部分的第一个元素的编号。也就是在提取的部分中,是不包括序列中索引为Index2的元素的。简而言之,就是第一个索引元素是包含在分片内,第二个索引元素是不包含在分片内的。

  4.3 序列相加

  可以通过加号来实现序列的连接操作。比如俩个字符串相加连接成一个新的字符串。

  4.4 序列乘法

  用数字X乘以一个序列会产生一个新的序列,在新的序列中,原来的序列被重复X次。

  4.5 成员资格

  为了检查一个值是否存在序列中,可以使用in运算符号。这个运算符检查某个条件是否为真,然后返回相应的值。例如

  s = [ ['sysnap', 123], ['huangzheng',246], ['ipi',9999]]
  if ['sysnap',123] in s: print("find it")

  4.6 长度,最大值,最小值

  内建len函数返回序列中所包含元素的数量,min和max函数则分别返回序列中最大和最小的元素。

5 序列之列表

列表的内容是可被修改的。可以使用list函数来创建列表,list(ohter s)就可以创建列表了。列表可以使用所有适于序列的标准操作,除此之外,还有其它方法来操作列表

  5.1 列表的基本操作

    5.1.1 删除元素

    从列表中删除元素很容易,使用del语句来实现。

    5.1.2 分片赋值

    使用分片赋值,可以使用与原序列不等长的序列将分片替换,这样通过分片操作也可以实现插入新的元素,删除元素(用空列表替换)

    name = list("Pyxxxx")

    name[2:] = list("thon")

    print(name)

  5.2 列表的方法

  方法是一个于某些对象有紧密联系的函数,对象可以是列表,数字,也可能是字符串等其它类型。一般方法的调用方式为 对象.方法(参数)

    5.2.1 append

    append方法用于在列表末尾追加新的对象。

    5.2.2 count

    统计某个元素在列表中出现的次数

    5.2.3 extend

    用新列表扩展原有的列表,与连接操作的区别在于,extend方法修改了被扩展序列,而连接操作则是反回一个新的序列,比如

    a = [1, 2, 3]

    b = [1, 2, 4]

    a.extend(b)执行之后 a 就变成[1, 2, 3, 1, 2, 4]

    5.2.4 index

    index方法用于从列表中找出某个值第一次匹配的索引未知

    5.2.5 insert

    insert用于将对象插入到列表中指定的位置,跟分片赋值一样,但可读性要高。比如

    s = [1, 2, 3, 4, 5]

    s.insert(3, 'new')

    执行之后,s变为[1, 2, 3, 'new', 4, 5]

    5.2.6 pop

    pop方法用于移除列表中的元素,并返回被移除的元素,默认是移除最后一个元素,也可以移除指定索引的元素。

    5.2.7 remove

    remove方法用于移除列表中跟输入匹配的元素,跟pop的一个区别是输入参数是对象而不是索引,

    5.2.8 reverse

    reverse方法将列表中的元素反向存放,但不返回值

6 序列之元组

元组可以认为是不可变的序列,元组大多时候是通过()园括号括起来的。关于元组有一个注意的地方是,请看下面例子

3*(10+2)这是一个数学表达式,输出结果是36,

3*(10+2,)输出结果却是(12,12,12)

  6.1 tuple函数

  以一个序列作为参数把它转为元组

  6.2 元组基本操作

  除了创建元组和访问元组元素外,没有太多操做,基本用的是序列支持的标准操作。

原文地址:https://www.cnblogs.com/sysnap/p/3427607.html