1. 程式人生 > >Python 元組的簡述

Python 元組的簡述

元組特點:元組是有序的,不能修改。

元組的定義:

(1),通過()來定義:變數名=(1,2,3,4),是以逗號分割,以小括號包圍的序列。

(2), 通過tuple 函式定義:

lst=[1,2,3,4]
a=tuple(lst)
print(a)

結果:
(1,2,3,4)

元組的優點:由於元組不可變,所以遍歷元組比列表要快(較小的效能提升)

1,元組的建立

tup = (1, 2.2, True, 'ka')
print(tup)
print(type(tup))
輸出結果:
(1, 2.2, True, 'ka')
<class 'tuple'>

2,訪問元組

元組的索引和字串以及列表完全一致

tup = (1, 2.2, True, 'ka')
ret = tup[1] #2.2 注意索引越界問題
# 通過切片來獲取內容
tup=(1,2.2,True,'hello','趙四','劉能')
tup1=tup[0:4:1] #[1,2.2,True,'hello']

# 訪問多維元組
tup = (('zs', 10), ('ls', 11), ('ww', 12))
ret = tup[1][0]
print(ret)  # ls  先找到內層元組,在獲得裡面對應的值

# 使用多個變數來接受元組中的值
# 注意:變數的個數和元組中的值的個數必須一一對應
name, age, height, weight = ('zs', 23, 1.76, 167)
print(name) # zs
print(age)  # 23
print(height) #1.76
print(weight) # 167

3,修改元組

元組是不可變的,但是如果元素本身是一個可變資料型別的列表,那麼 其巢狀項可以被改變。

tup = ('zs', 'ls', 'ww', ['白骨精', '唐僧'])
tup[3].insert(1,'宋江')
print(tup) # ('zs', 'ls', 'ww', ['白骨精', '宋江', '唐僧'])
tup[3].append('宋江')
print(tup) # ('zs', 'ls', 'ww', ['白骨精', '宋江', '唐僧', '宋江'])

4,一個逗號的魅力

tup1 = (1)
tup2 = (1,)
print(type(tup1)) # <class 'int'>
print(type(tup2)) # <class 'tuple'>

可以看到沒有逗號,變數就是整數型的,所以這就是一個逗號的魅力

5,tuple 函式

功能與 list 函式基本上是一樣的

# tuple()函式和list()函式
lst = [1, 2, 3]
tup = tuple(lst)
print(tup) # (1, 2, 3)
tup = ('a', 'b', 'c')
ret = list(tup)
print(ret) # ['a', 'b', 'c']

6,元組的方法

因為元組是不可變的,所以方法只有兩種 index 和 count ,用法也與列表一樣

tup = ('a', 'b', 'c', 'a', 'b', 'c', 'g')
ret = tup.index('b')
ret1 = tup.index('a', 2, len(tup))
print(ret, ret1) # 1 3
ret2 = tup.count('a')
print(ret2) # 2

7,元組與字串的區別

(1)、元組和字串都是有序的,不可修改的序列

(2)、元組的元素可以是任何型別,字串的元素只能是字元

(3)、元組的元素長度可以任意,字串的元素長度只能為1