Python基礎資料結構之元組 tuple

2021-10-23 11:47:52 字數 4463 閱讀 4778

有序的儲存任何資料型別,元祖和列表類似,不同之處在於元祖不能修改。元祖是不可變資料型別。

相同點:

都可以儲存任意資料型別的資料

都是有序的資料型別(支援下表索引和切片)

都可以使用for、while迴圈遍歷

不同點:

列表是可變資料型別(增、刪、改、查),元祖是不可變資料型別(查)。

列表用定義,元祖用()定義

定義格式:元祖名 = (元素1, 元素2,...)

定義乙個正常元祖:

my_tuple1 =(1

,2,'hello'

)print

(my_tuple)

# 輸出(1, 2, 'hello')

my_tuple2 =

tuple

('hello'

)# 將傳入的物件分成最小單元逐個輸出

print

(my_tuple2)

# 輸出('h', 'e', 'l', 'l', 'o')

定義乙個特殊元祖(空元祖):

is_tuple1 =()

print

(is_tuple1)

# 輸出()

is_tuple2 =

tuple()

print

(is_tuple2)

# 輸出()

有且只有乙個元素的元祖(必須加逗號):

is_tuple =

('hello',)

print

(is_tuple)

# 輸出('hello')

is_tuple1 =

('hello'

)print

(is_tuple1)

# 注意:如果沒有加逗號,則is_tuple1不是乙個元祖,而是乙個字串

因為元祖是有序的,所以可以使用索引和切片來訪問元祖中的值

通過索引訪問元祖中的值(得到元素自身資料型別):

is_tuple =

("小明",18

,3.14

)value1 = is_tuple[0]

value2 = is_tuple[1]

value3 = is_tuple[2]

print

(type

(value1)

, value1)

# 小明

print

(type

(value2)

, value2)

# 18

print

(type

(value3)

, value3)

# 3.14

通過切片訪問元祖中的值(得到的值裝在元祖中):

is_tuple =

("小明",18

,3.14

)new_tuple = is_tuple[::

-1]# 逆序輸出

print

(new_tuple)

# 輸出(3.14, 18, '小明')

new_tuple1 = is_tuple[:2

]print

(new_tuple1)

# 輸出('小明', 18)

通過in、not in、index、count來查詢元祖中的元素

is_tuple =

("小明",18

,3.14,15

,"男",15

,15)# in:查詢指定元素是否在元祖中

if"男"

in is_tuple:

print

("存在"

)# 輸出存在

# not in

if"你好"

notin is_tuple:

print

("它不存在"

)# 輸出它不存在

# index:根據object獲取到元素的索引值(如該元素有多個,則獲取到第一次出現的索引值)

value4 = is_tuple.index(15)

print

(value4)

# 輸出3

# count:元祖裡面某個元素有多少個

value5 = is_tuple.count(15)

value6 = is_tuple.count(

"小明"

)print

(value5)

# 輸出3

print

(value6)

# 輸出1

使用for迴圈或者while迴圈將元祖中的每個元素都獲取出來

# for迴圈

is_tuple =

("小明",18

,3.14,15

,"男"

)for value in is_tuple:

print

(value)

# while迴圈

i =0

while i <

len(is_tuple)

:print

(is_tuple[i]

) i +=

1"""

兩者都輸出

小明 18

3.14

15 男

"""

元祖本身不可以對元素進行增刪改,但是當元祖中巢狀列表時,可以增刪改列表中的元素,通過更改列表中的元素間接修改元祖中的元素。

# 建立乙個元祖

is_tuple =

("你好",[

"小明",20

,"男"],

22)# 拿到元祖中的列表元素

value = is_tuple[1]

# 進行列表元素的新增

"小花")55

)print

(is_tuple)

# 輸出('你好', ['小明', 20, '男', '小花', 55], 22)

# 列表元素的修改

value[0]

="李四"

value[2]

="女 "

print

(is_tuple)

# 輸出('你好', ['李四', 20, '女', '小花', 55], 22)

# 列表元素的刪除

del value[0]

print

(is_tuple)

# 輸出('你好', [20, '女 ', '小花', 55], 22)

value.remove(

"小花"

)print

(is_tuple)

# 輸出('你好', [20, '女 ', 55], 22)

value.pop(1)

print

(is_tuple)

# 輸出('你好', [20, 55], 22)

元組可以進行連線組合:

is_tuple1 =

(3.14,5

,'hello'

,'world'

)is_tuple2 =

(100

,'你好'

,'世界'

)print

(is_tuple1)

# 輸出(3.14, 5, 'hello', 'world')

print

(is_tuple2)

# 輸出(100, '你好', '世界')

ret = is_tuple1 + is_tuple2

print

(ret)

# 輸出(3.14, 5, 'hello', 'world', 100, '你好', '世界')

元組裡面的元素不可以刪除,但是可以使用del 元組名刪除整個元組:

my_tuple =(1

,'你好'

,'世界'

)print

(my_tuple)

# 輸出(1, '你好', '世界')

del my_tuple

print

(my_tuple)

# 程式報錯『my_tuple』不存在,因為刪除了my_tuple這個元組

Python之資料結構 元組

元組與列表的最大區別是列表可以修改 可以讀取 可以刪除,而元組建立之後則不能修改,但是可以刪除整個元組。1 定義元組 l1 1,2,3 print l1 print type l1 執行結果 如果元組只有乙個元素,則這個元素後面必須要有 否則元素就還是其原來的型別。l1 1,2,3 print l1...

Python內建資料結構之元組tuple

1.python序列之元組 不可修改的序列 元組其實跟列表差不多,也是存一組數,只不是它一旦建立,便不能像列表式的增刪改,只能查,切片,所以元組又叫唯讀列表。元組用圓括號括起 這是通常採用的做法 1.1 函式tuple 函式tuple的工作原理與list類似 它將乙個序列作為引數,並將其轉換為元組。...

七 資料結構之元組

元組和列表有很多相似之處,對於操作一樣的地方,會簡寫一些。1.簡介 表現形式 tuple。元組是乙個不可變序列,當我們希望資料不變時我們就使用元組,其他情況一般使用列表。2.元祖的建立 方法一 建立空元組。tupl print tupl 方法二 tupl tuple 342ff print tupl...