1. 程式人生 > >序列——列表和元組

序列——列表和元組

特定 cnblogs tab base 步長 遞增 包含 部分 如果

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]
  

  

序列——列表和元組