PYTHON 資料結構 - 元組
阿新 • • 發佈:2022-11-30
1.1 資料結構
一般常用的有陣列(Array),集合(Set),列表(List),佇列(Queue),連結串列(Linkedlist),樹(Tree),堆(Heap),棧(Stack),字典(Dictionary)
Python中資料結構主要有序列,集合,字典。
1.2 序列
序列是一種可迭代的,元素有順序,可以重複出現的資料結構,序列可以通過索引訪問;序列包括列表,字串,位元組串,元組等。
對於索引,切片與字串筆記中相同,不再記錄。
1.2.1 通用函式
-
len(序列)長度(即元素的個數)
>>> a =(1,2,3,4,5) >>> len(a) 5
-
max(序列)最大值
元素如整數,字串按編碼進行求值
>>> a = (1,2,3,4,5) >>> max(a) 5
-
min(序列) 最小值
元素如整數,字串按編碼進行求值
>>> a = (1,2,3,4,5) >>> min(a) 1
1.3 元組
元組類似於陣列,元組本身一旦定義是不可變的(即不能新增,刪除其中的元素),元組裡的元素型別可以是不同的(與陣列有區別)。
資料型別:tuple
優點:
- 可以更安全地保護資料
- 增加程式執行速度
1.3.1 建立元組
- 通過()建立多元素元組
# a = (元素1,元素2, ...) >>> a = ('張三','男',100,100,90) >>> print(a) ('張三', '男', 100, 100, 90)
- 只有一個元素的建立方法
>>> a = ('hello')
>>> a
'hello' # 發現結果不是元組,是一個字串,()相當於運算優先順序的作用了。
>>> a = ('hello',) # 加一個逗號
>>> a
('hello',)
- 用tuple函式建立
# tuple(序列) >>> tuple(a) ('h', 'e', 'l', 'l', 'o') >>> >>> a = [1,2,3,4] >>> tuple(a) (1, 2, 3, 4)
- 建立空元組
>>> a = ()
>>> b = tuple()
>>> a,b
((), ())
1.3.2 訪問元組
可以通過索引的方式訪問,也可以通過切片的方式訪問
>>> a = (1,2,3,4)
>>> a[0]
1
>>> a[1:3]
(2, 3)
1.3.3 元組解包
把元組的元素值,賦值給變數。
>>> num = (1,2,3)
>>> a,b,c = num # 把1,2,3 賦值給a,b,c (注意:元素個數和變數個數對應)
>>> print(a,b,c)
1 2 3
>>> num = (1,2,3,4,5)
>>> a,*b,c = num # 如果個數不對應,可以用*var接收部分資料
>>> print(a,b,c)
1 [2, 3, 4] 5
>>> num=(1,2,3,4)
>>> a,_,b,_ = num # 對於不需要的元素,可以用_接收,約定不取這個元素(本質上賦值給_了)
>>> print(a,b,_)
1 3 4
1.3.4 遍歷元組
# 用for的一般遍歷
# 迴圈一次,取出下一個
num = (1, 2, 3, 4, 5)
for item in num:
print(item) # 依次列印1,2,3,4,5
# 帶索引的遍歷
num = (1, 2, 3, 4, 5)
for n, item in enumerate(num): # n, item就是解包
print(n,item)
1.3.5 刪除元組
元組本身是不可變的,不支援修改,但可以刪除整個元組。
>>> num = (1,2,3)
>>> del num
>>> num
1.3.6 元組的 +
, *
運算
元組的+
運算是合併兩個元組,建立一個新元組。
>>> a = (1,2,3)
>>> b = (4,5,6)
>>> c = a + b
>>> c
(1, 2, 3, 4, 5, 6)
元組的*
運算是重複元組,建立一個新元組。
>>> a = (1,2)
>>> a * 3
(1, 2, 1, 2, 1, 2)
1.3.7 用zip打包成元組
zip把多個序列,按列打包成元組。想像成一個二維表格,按列組成元組的元素。
a = [1,2,3]
b = [4,5,6]
c = [7,8,9]
d = zip(a,b,c)
print(tuple(d)) # ((1, 4, 7), (2, 5, 8), (3, 6, 9))