1. 程式人生 > >Python元組操作

Python元組操作

1、任務簡介

我在之前的部落格《Python列表(“陣列”)操作》中講解了Python列表的一些主要操作方法,由於元組與列表有許多相同之處,所以今天就把元組的操作也講解一下。

元組與列表最大的區別就在於你可以任意修改列表中的元素,可以任意插入或者刪除一個元素,而在元組中這些都是不可以的,但是我們有其他的方法來實現這些,具體的操作方法會在後文中講解。

注:本部落格所有程式碼均在IDLE下完成。

2、元組操作簡介

(1)建立元組

建立元組時大部分使用的是小括號,具體操作如下:

>>> tuple = (1,2,3,4,'羅思洋')
>>> tuple
(1, 2
, 3, 4, '羅思洋')

和列表一樣,元組中可以包含整形、字串、浮點型資料,還可以包含另一個元組。

(2)從元組中獲取元素

由於元組中的元素不能隨意插入或更改,所以插入或更改的方法在後文中講解,我們先來講解簡單一點的元素獲取方法(其方法與列表中獲取元素方法相同)。

1)從元組中獲取元素可以一次獲取一個或多個,獲取一個的操作如下:

>>> tuple = (1,2,3,4,'羅思洋')
>>> tuple[0]
1

2)獲取多個的方法如下:

>>> tuple = (1,2,3,4,'羅思洋')
>>> tuple[0:
3] (1, 2, 3)

tuple[0:3]中0為開始位置,3為結束位置;

3)訪問元組中元組的方法如下:

>>> tuple = (1,2,(3,4),'羅思洋')
>>> tuple[2][1]
4

tuple[2][1]2指第一層元組的元素,1指第二層元組中的元素。

(3)元組反轉

1)其反轉方法和列表的第一種方法一樣,通過分片操作即可,分片操作中當步長為-1就可以實現列表反轉,操作如下:

>>> tuple = (1,2,3,4)
>>> tuple[::-1]
(4, 3, 2, 1)

2)那麼我們可不可以使用reverse()方法呢,試試不就知道了嗎?操作如下:

>>> tuple = (1,2,3,4)
>>> tuple.reverse()
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    tuple.reverse()
AttributeError: 'tuple' object has no attribute 'reverse'

由此可見使用reverse()方法宣告失敗,提示說元組中沒有reverse這種屬性,所以以後要實現元組反轉我們就使用分片的方法吧。

(4)元組的重複

元組重複的操作與列表類似,具體如下:

>>> tuple = (123,)
>>> tuple*3
(123, 123, 123)
>>> tuple *= 3
>>> tuple
(123, 123, 123)

需要注意的是當建立的元組只包含一個元素時,裡面的逗號是必不可少的,有逗號才可以證明我們建立的是元組,證明如下(我們使用type方法檢視型別):

>>> temp = (123)
>>> type(temp)
<class 'int'>
>>> temp = (123,)
>>> type(temp)
<class 'tuple'>

當沒有逗號時我們建立的是int型,而有逗號時我們建立的才是元組,由此可見逗號才是元組的關鍵!

(5)元素是否存在於元組中的判斷

1)元組中元素判斷的方法與列表一樣,in的操作如下:

>>> tuple = (1,2,3,4)
>>> 1 in tuple
True
>>> 5 in tuple
False

not in的操作如下:

>>> tuple = (1,2,3,4)
>>> 1 not in tuple
False
>>> 5 not in tuple
True

2)對於二層元組中元素的判斷與列表一樣,操作如下:

>>> tuple = (1,(2,3),4)
>>> 2 in tuple[1]
True
>>> 3 not in tuple[1]
False

(6)向元組中新增元素

講了這麼多,重頭戲終於來了,既然不可以在元組中隨意插入元素,那麼我們就使用構造新元組的方法來解決這個問題,操作如下:

>>> tuple = ('羅','思','洋')
>>> tuple = tuple[0:2]+('lsy',)+tuple[2:]
>>> tuple
('羅', '思', 'lsy', '洋')

這樣我們就可以向元組中新增一個元素,並且新增的位置還可以自己來定,其實原理是使用分片的方法將元組拆分為兩部分,再使用連線操作符+合併為一個新元組,最後將tuple名指向新元組,需要注意的是被新增元素(‘lsy’,)的逗號不可缺少!切記切記!!!

(7)從元組中刪除元素

1)既然講了插入的方法,那麼刪除的方法自然是必不可少的,刪除的原理和插入原理類似,都需要採用列表分片的方法,然後使用連線操作符+合併一個新元組,操作如下:

>>> tuple = ('羅','思','洋')
>>> tuple = tuple[:1] + tuple[2:]
>>> tuple
('羅', '洋')

2)如果需要刪除整個元組,我們可以使用del語句,操作如下:

>>> tuple1 = (1,2,3,4)
>>> del tuple1
>>> tuple1
Traceback (most recent call last):
  File "<pyshell#38>", line 1, in <module>
    tuple1
NameError: name 'tuple1' is not defined

元組拼接的方法在插入和刪除中我們都已經有所涉及,自己總結即可。

(8)其餘操作

1)count()方法可以計算元素在元組中的出現次數,操作如下:

>>> tuple = (1,1,2,3,4,1)
>>> tuple.count(1)
3

2)index()方法可以返回元素在元組中的位置,操作如下:

>>> tuple = (1,2,3,4)
>>> tuple.index(3)
2

元組中是不可以使用sort()方法和reverse()方法來實現升序排序的。

3、總結

從上面的操作中可以看出Python元組的許多操作方法和列表是一樣的,由於元組不可以隨意的插入和刪除,所以我們需要使用分片的方法來實現這兩個功能,關於元組大家還可以通過菜鳥教程進行學習,但是我認為我寫的更加詳細,並且將主要操作都進行了驗證。