首页 > 代码库 > 序列——列表和元组

序列——列表和元组

Python包含6种内建的序列:列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。

1、列表和元组的主要区别在与,列表可以修改,元组则不能。

列表如下例所示:

  >>> edward=[‘Edward Gumby‘,42]

  >>> database=[[‘Edward Gumby‘,42],[‘Allen‘,22]]

2、通用序列操作

  所有序列类型都可以进行某些特定的操作。这些操作包括:索引(indexing)、分片(slicing)、加(adding)、乘(multiplying)以及检查某个元素是否属于序列的成员。除此之外,Python还有计算序列长度,找出最大元素和最小元素的内建函数。

①索引

序列中的所有元素都是有编号的,从0开始递增。这些元素可以通过编号分别访问,如下例所示:

  >>> greeting=‘Hello‘

  >>>greeting=[0]

  ‘H‘

  >>>greeting=[-1]

  ‘o‘

②分片

  与使用索引来访问单个元素类似,可以使用分片操作来访问一定范围内的元素。

示例:

  >>> tag=‘<a href="http://www.python.org">Python web site</a>‘

  >>>tag[9:30]  #从第10个字符截取到第30个字符

  ‘http://www.python.org‘

  >>>tag[32:-4]

  ‘Python web site‘

分片操作对于提取序列的一部分是很有用的。第一个索引是要提取的第一个元素的编号,而最后的索引则是分片之后剩余部分的第1个元素的编号。简而言之,分片操作的实现需要提供两个索引作为边界,第一个索引的元素是包含在分片内的,而第2个则不包含在分片内。

#分片实例,分片和索引一样都是从0开始递增
>>>number=[1,2,3,4,5,6,7,8,9,10]
>>>number[3:6]
[4,5,6]
>>>number[0:1]
[1]
#假设需要访问最后几个元素,那么可以:
>>>number[7:13]#最后一个索引超出边界的方式
[8,9,10]
>>>number[7:]#第二个索引不提供则任务取到最后
[8,9,10]
#如果想获取最后3个元素,但是不知道倒数第三个元素的索引,可以这样取:
>>>number[-3:]
[8,9,10]
#但是不可以:
>>>number[-3:0]
[]
#但是取前3个元素可以这样:
>>>number[0:3]
[1,2,3]#或者
>>>number[:3]
[1,2,3]
#分片还有另外一个参数:步长
>>>number[0:10:1]
    [1,2,3,4,5,6,7,8,9,10]
>>>number[0:10:2]
    [1,3,5,7,9]
>>>number[::4]
    [1,5,9]
#步长不可以是0,但是可以是负数
>>>number[8:3:-1]
    [9,8,7,6,5]
>>>number[10:0:-2]
    [10,8,6,4,2]
>>>number[0:10:-2]
    []
>>>number[::-2]
    [10,8,6,4,2]
>>>number[:5:-2]
    [10,8]
>>>number[5::-2
    [6,4,2]
  

  

序列——列表和元组