有序的儲存任何資料型別,元祖和列表類似,不同之處在於元祖不能修改。元祖是不可變資料型別。
相同點:
都可以儲存任意資料型別的資料
都是有序的資料型別(支援下表索引和切片)
都可以使用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...