1. 程式人生 > >1.6 序列的通用操作

1.6 序列的通用操作

blog sar 重復 color 統計 序列值 end 切片 list()

下面幾個小節分別會介紹到的list、tuple、str等都屬於序列。

先介紹序列通用操作,序列的通用操作部分對list、tuple、str都適用,此處以list為例進行演示。

在講序列的通用操作之前,先講一下列表的構造。
列表的構造方法:
  (1)直接把列表的元素直接放在[]中,
  (2)使用全局list()函數構造列表。list會把傳進來的序列值進行拆分。其他可叠代對象也能生成列表。

#先生成一個list類型的對象

1   >>> l = [張三,李四,王五]
2   >>> l
3   [張三, 李四, 王五]

通用操作一:

  判斷元素x是否在l 之內 x in l / x not in l 判斷結果是bool型

 1   >>> l1
 2   [張三, 李四, 王五]
 3   >>> 張三 in l1
 4   True
 5   >>> 張三 not in l1
 6   False
 7   >>> 陳六 in l1
 8   False
 9   >>> 陳六 not in l1
10   True
11   >>> 

通用操作二:

  連接序列 l1 + l2 將兩個序列拼接成一個序列。l1和l2在拼接前後不變,是生成了一個新的對象。

1   >>> l1=l = [‘張三‘,‘李四‘,‘王五‘]
2   >>> l2=[‘Marry‘,‘Sara‘] #說起這個Sara,就想起了越獄中女主角,好喜歡她
3   >>> l1 + l2
4   [‘張三‘, ‘李四‘, ‘王五‘, ‘Marry‘, ‘Sara‘]
5   >>> l1
6   [‘張三‘, ‘李四‘, ‘王五‘]
7   >>> l2
8   [‘Marry‘, ‘Sara‘]
9   >>>

通用操作三:

  重復序列元素 l1 * n n就是你想重復的次數

1   >>> l1*2
2   [張三, 李四, 王五, 張三, 李四, 王五]
3 
4   >>> l1
5   [張三, 李四, 王五]     #果不其然,原列表不變

通用操作四:

  通過下標獲取元素 l1[i] 註意下標i是從0開始的

1   >>> l1[1]
2 
3   李四

通用操作五:

  訪問指定索引範圍 l1[i:j] 註意編程語言中的範圍一般都是含頭不含尾的,這個操作又叫切片

1 >>> l1[1:2]
2 [李四]
3 >>> 

通用操作六:

  按步長訪問指定範圍索引 s[i:j:k] k即為步長。步長值默認為1,也可以自己設置步長值。

1 >>> l = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
2 >>> l[2:15:3]
3 [3, 6, 9, 12, 15]

通用操作七:

  獲取序列長度 len(s)

1 >>> l
2 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
3 >>> len(l)
4 18
5 >>> 

通用操作八:

  獲取序列最小值 min(s)、獲取序列最大值 max(s) 元素必須是可比較大小的。

1 >>> l
2 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
3 >>> min(l)
4 1
5 >>> max(l)
6 18
7 >>> 

通用操作九:

  獲取序列元素的總和: sum ( s )

>>> l
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
>>> sum(l)
171
>>> 

通用操作十:

  檢索某個元素第一次出現的位置下標 index()

1 >>> l
2 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
3 >>> l.index(3)
4 2
5 >>> 

通用操作十一:

  統計序列中某個元素出現的次數count()

1 >>> l.append(8)
2 >>> l
3 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 8]
4 >>> l.count(8)
5 2
6 >>> 

1.6 序列的通用操作