元組是有序且不可更改的集合。在Python中,元組使用圓括號 ()
編寫的。
元組的創建很簡單,使用圓括號 () 直接創建或者使用 tuple() 函數創建,只需要在圓括號中添加元素,並使用逗號隔開即可。
通過 () 創建元組後,使用 = 將它賦值給變量,格式如下:
tuple_name = (element_1, element_2, ..., element_n)
其中,tuple_name 表示變量名,element_1 ~ element_n 表示元組內的元素。
我們除了可以使用 () 創建元組,還可以使用 tuple() 函數創建元組,但 tuple() 偏向於將某個類型轉換為元組,具體用法見下述:
cre_tuple = tuple(('a', 'b', 'c')) # 注意雙括號
print(cre_tuple)
print(type(cre_tuple))
('a', 'b', 'c')
<class 'tuple'>
當元組中只包含一個元素時,需要在元素後面添加逗號
,
,否則括號會被當作運算符使用:
tuple_1 = (20)
print(type(tuple_1)) # <class 'int'>
tuple_2 = (20,)
print(type(tuple_2)) # <class 'tuple'>
當元組中只含一個元素未添加逗號時,使用 type() 打印其類型時,會輸出
<class 'int'>
。當元組中只含一個元素並添加逗號時,使用type() 打印其類型時,會輸出
<class 'tuple'>
。
()
,列表使用 中括號[]
。和列表一樣,我們既可以使用下標索引訪問元組中的某個元素(得到一個元素的值),也可以使用切片訪問元組中的一組元素(得到是子元組)。
下標索引訪問元組分為兩大類,即正向索引和反向索引,格式為 tuple_name[i]
,其中,tuple_name 表示元組名,i表示索引值,i可以是正數(正向索引)也可以是負數(反向索引)。
可以得知,tuple_name[0]
表示元組內第一個元素,tuple_name[-1]
則表示元組內最後一個元素。
tuple_name = ('wzq', 'lgl', 'gz', 'whl', 'sj', 'hxw')
print(tuple_name[0])
print(tuple_name[-1])
wzq
hxw
正向索引:從第一個(下標0)開始、第二個(下標1)…
反向索引:從倒數第一個(下標-1)、倒數第二個(下標-2)…
如若對上方描述不太理解,可參考下表:
使用切片訪問元組的格式為 tuple_name[strat : end : step]
,其中,start 表示起始索引,end 表示結束索引,step 表示步長。
tuple_name = ('wzq', 'lgl', 'gz', 'whl', 'sj', 'hxw')
print(tuple_name[1:5:2])
print(tuple_name[-6:-1:3])
('lgl', 'whl')
('wzq', 'whl')
在使用切片訪問元組元素時,
tuple_name[strat : end : step]
,[start:end] 是左閉右開區間,即訪問不了 end 代表的元素。
可以使用 for 循環遍歷元組中的項目:
fruit_tuple = ('apple', 'pear', 'cherry')
for i in fruit_tuple:
print(i)
apple
pear
cherry
要確定元組中是否存在指定的項,我們可以使用 in 關鍵字:
# 檢查元組中是否存在'apple'
fruit_tuple = ('apple', 'pear', 'cherry')
print('apple' in fruit_tuple)
True
使用 in 關鍵字檢查元組中是否存在指定項時,如果存在,則返回 True ;反之,則返回 False 。
創建元組後,我們將無法更改其值。元組是不可變的,或者也被稱為恆定的。
但是有一種解決方法:可以先將元組轉換為列表,更改列表值,然後再將其轉換回元組。
fruit_tuple = ('apple', 'pear', 'cherry')
fruit_list = list(fruit_tuple)
fruit_list[2] = 'banana'
fruit_tuple = tuple(fruit_list)
print(fruit_tuple)
('apple', 'pear', 'banana')
與字符串一樣,元組之間可以使用 +
號和 *
號實現元組的連接和復制,這就意味著它們可以生成一個新的元組。
1、+
連接
x = (1, 2, 3)
y = (4, 5, 6)
print(x + y)
(1, 2, 3, 4, 5, 6)
2、*
復制
x = ('Hello',)
print(x * 5)
('Hello', 'Hello', 'Hello', 'Hello', 'Hello')
所謂元組的不可變性指的是元組所指向的內存中的內容不可變。
tup = ('A', 'B', 'C')
# tup[0] = 'a'
不支持修改元素,會報錯
TypeError: 'tuple' object does not support item assignment
。
tup = ('A', 'B', 'C')
print(id(tup))
# 查看內存地址
tup = (1, 2, 3)
print(id(tup))
2671405067264
2671405072256
從以上實例可以看出,重新賦值的元組 tup ,綁定到了新的對象了,不是修改了原來的對象。
1、print()
函數
print() 函數的功能我們已經非常熟悉了,就是打印輸出。
my_tuple = ('name', True, 21)
print(my_tuple)
('name', True, 21)
2、len()
函數
當我們要確定一個元組有多少項目(元素)時,可以使用len()
函數。
fruit_tuple = ('apple', 'banana', 'cherry')
print(len(fruit_tuple))
3
3、type()
函數
使用 type() 函數可以確定變量是什麼類型(字符串、列表、元組、字典或集合)。
當對
tup_1 = (20)
使用 type() 確定變量類型時,會返回<class 'int'>
,表明這是一個整型。所以當一個元組只含有一個元素時,一定要加上逗號,
。當對
tup_1 = (20,)
使用 type() 確定變量類型時,會返回<class 'tuple'>
,表明這是一個元組。
4、tuple()
函數
tuple() 函數的功能是,將其他類型轉換為元組類型,詳細用法如下:
str1 = 'Hello Python'
print(tuple(str1))
('H', 'e', 'l', 'l', 'o', ' ', 'P', 'y', 't', 'h', 'o', 'n')
list1 = ['Hello', 'Python']
print(tuple(list1))
('Hello', 'Python')
dict1 = {
'Hello': 'Python', 'name': 'pink'}
print(tuple(dict1))
('Hello', 'name')
set1 = {
'Hello', 'Python', 'name', 'pink'}
print(tuple(set1))
('Hello', 'name', 'Python', 'pink')
range1 = range(1, 6)
print(tuple(range1))
(1, 2, 3, 4, 5)
5、max()
函數和min()
函數
max() 函數的作用是返回元組中元素最大值。min() 函數的作用是返回元組中元素最小值。
tup1 = (4, 6, 2, 0, -5)
print(max(tup1))
print(min(tup1))
tup2 = ('a', 'z', 'A', 'Z')
print(max(tup2))
print(min(tup2))
6
-5
z
A
元組中的元素值是不允許刪除的,但我們可以使用 del 函數來刪除整個元組。
word_tuple = ('a', 'b', 'c')
del word_tuple
當我們使用 del 函數刪除某元組後,再使用 print() 函數打印輸出時,會報錯
NameError: name 'word_tuple' is not defined
,表明該元組未被定義。
count() 方法返回指定值在元組中出現的次數。
語法
tuple.count(value)
參數值
實例
返回值 5 在元組中出現的次數:
num_tuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5, 5)
print(num_tuple.count(5))
3
index() 方法查找指定值的第一次出現。
語法
tuple.index(value)
參數值
實例
num_tuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5, 5)
print(num_tuple.index(5))
5
注意:當被搜索值在元組中存在多個,則返回第一次出現的下標。
num_tuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5, 5)
print(num_tuple.index(999))
如果未找到該值,index() 方法將引發異常,
ValueError: tuple.index(x): x not in tuple
。
以上就是本文的全部內容啦!如果對您有幫助,麻煩點贊啦!收藏啦!歡迎各位評論區留言!!!
最後編輯於:2022/7/25 20:43