您好,登錄后才能下訂單哦!
本篇內容主要講解“Python序列類型的基本操作是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python序列類型的基本操作是什么”吧!
在介紹 Python 的常用數據類型之前,我們先看看 Python 最基本的數據結構 -——序列(sequence
)。序列的一個特點就是根據索引(index,即元素的位置)來獲取序列中的元素,第一個索引是 0,第二 個索引是 1,以此類推。
所有序列類型都可以進行某些通用的操作,比如:
索引( indexing )
分片( sliceing )
迭代( iteration )
加( adding )
乘( multiplying )
除了上面這些,我們還可以檢查某個元素是否屬于序列的成員,計算序列的長度等等。
重點講索引和切片。
序列中的元素可以通過索引獲取,索引從 0 開始。看看下面的例子:
>>> nums = [1, 2, 3, 4, 5] # 列表 >>> nums[0] 1 >>> nums[1] 2 >>> nums[-1] # 索引 -1 表示最后一個元素 5 >>> s = 'abcdef' # 字符串 >>> s[0] 'a' >>> s[1] 'b' >>> >>> a = (1, 2, 3) # 元組 >>> a[0] 1 >>> a[1] 2
注意到 : -1 則代表序列的最后一個元素, -2 代表倒數第二個元素,以此類推。
索引用于獲取序列中的單個元素,而分片則用于獲取序列的部分元素。分片操作需要提供兩個索引作為 邊界,中間用冒號相隔,比如:
>>> numbers = [1, 2, 3, 4, 5, 6] >>> numbers[0:2] # 列表分片 [1, 2] >>> numbers[2:5] [3, 4, 5] >>> s = 'hello, world' # 字符串分片 >>> s[0:5] 'hello' >>> a = (2, 4, 6, 8, 10) # 元組分片 >>> a[2:4] (6, 8)
這里需要特別注意的是,分片有兩個索引,第 1 個索引的元素是包含在內的,而第 2 個元素的索引 則不包含在內,也就是說,numbers[2:5] 獲取的是 numbers[2], numbers[3], numbers[4],沒有包括 numbers[5] 。
下面列舉使用分片的一些技巧:
(1)訪問最后幾個元素
(2)使用步長
訪問最后幾個元素 :
假設需要訪問序列的最后 3 個元素,我們當然可以像下面這樣做:
>>> numbers = [1, 2, 3, 4, 5, 6] >>> numbers[3:6] [4, 5, 6]
有沒有更簡潔的方法呢?想到可以使用負數形式的索引,你可能會嘗試這樣做:
>>> numbers = [1, 2, 3, 4, 5, 6] >>> numbers[-3:-1] # 實際取出的是 numbers[-3], numbers[-2] [4, 5] >>> numbers[-3:0] # 左邊索引的元素比右邊索引出現得晚,返回空序列 []
上面的兩種使用方式并不能正確獲取序列的最后 3 個元素, Python 提供了一個捷徑 :
(也就是說,如果希望分片包含最后一個元素,可將第 2 個索引置為空)
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8] >>> numbers[-3:] [6, 7, 8] >>> numbers[5:] [6, 7, 8]
如果要復制整個序列,可以將兩個索引都置為空:
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8] >>> nums = numbers[:] >>> nums [1, 2, 3, 4, 5, 6, 7, 8]
使用步長 :
使用分片的時候,步長默認是 1 ,即逐個訪問,我們也可以自定義步長,比如:
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8] >>> numbers[0:4] [1, 2, 3, 4] >>> numbers[0:4:1] # 步長為 1,不寫也可以,默認為 1 [1, 2, 3, 4] >>> numbers[0:4:2] # 步長為 2,取出 numbers[0], numbers[2] [1, 3] >>> numbers[::3] # 等價于 numbers[0:8:3],取出索引為 0, 3, 6 的元素 [1, 4, 7]
另外,步長也可以是負數,表示從右到左取元素:
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8] >>> numbers[0:4:-1] [] >>> numbers[4:0:-1] # 取出索引為 4, 3, 2, 1 的元素 [5, 4, 3, 2] >>> numbers[4:0:-2] # 取出索引為 4, 2 的元素 [5, 3] >>> numbers[::-1] # 從右到左取出所有元素 [8, 7, 6, 5, 4, 3, 2, 1] >>> numbers[::-2] # 取出索引為 7, 5, 3, 1 的元素 [8, 6, 4, 2] >>> numbers[6::-2] # 取出索引為 6, 4, 2, 0 的元素 [7, 5, 3, 1] >>> numbers[:6:-2] # 取出索引為 7 的元素 [8]
這里總結一下使用分片操作的一些方法, 分片的使用形式是 :
# 左索引:右索引:步長 left_index:right_index:step
要牢牢記住的是 :
左邊索引的元素包括在結果之中,右邊索引的元素不包括在結果之中;
當使用一個負數作為步長時,必須讓左邊索引大于右邊索引;
對正數步長,從左向右取元素;對負數步長,從右向左取元素;
序列可以進行「加法」操作,如下:
>>> [1, 2, 3] + [4, 5, 6] # 「加法」效果其實就是連接在一起 [1, 2, 3, 4, 5, 6] >>> (1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) >>> 'hello, ' + 'world!' 'hello, world!' >>> [1, 2, 3] + 'abc' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can only concatenate list (not "str") to list #這里需要注意的是:兩種相同類型的序列才能「加法」操作。
序列可以進行「乘法」操作,比如:
>>> 'abc' * 3 'abcabcabc' >>> [0] * 3 [0, 0, 0] >>> [1, 2, 3] * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3]
到此,相信大家對“Python序列類型的基本操作是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。