程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python 元組tuple詳解(超詳細)

編輯:Python

文章目錄

  • Python內置函數/方法詳解—元組tuple
    • 1、創建元組
      • 1.1 使用 () 創建元組
      • 1.2 使用 tuple()函數 創建元組
      • 1.3 元組(單個元素)
      • 1.4 元組 VS 列表
    • 2、訪問元組
      • 2.1 下標索引訪問
      • 2.2 切片訪問
      • 2.3 for 循環遍歷元組
      • 2.4 檢查項目是否存在
      • 2.5 更改元組值
      • 2.6 元組連接(合並)/復制
      • 2.7 元組不可變性
    • 3、內置函數
      • 3.1 打印輸出 print()
      • 3.2 確定元組項目 len()
      • 3.3 返回變量類型 type()
      • 3.4 轉換為元組 tuple()
      • 3.5 元組元素最大/小值 max()、min()
      • 3.6 刪除元組 del
    • 4、內置方法
      • 4.1 元素出現次數 count()
      • 4.2 元素位置 index()
    • 5、總結

Python內置函數/方法詳解—元組tuple

元組是有序不可更改的集合。在Python中,元組使用圓括號 () 編寫的。

1、創建元組

元組的創建很簡單,使用圓括號 () 直接創建或者使用 tuple() 函數創建,只需要在圓括號中添加元素,並使用逗號隔開即可。

1.1 使用 () 創建元組

通過 () 創建元組後,使用 = 將它賦值給變量,格式如下:

tuple_name = (element_1, element_2, ..., element_n)

其中,tuple_name 表示變量名,element_1 ~ element_n 表示元組內的元素。

1.2 使用 tuple()函數 創建元組

我們除了可以使用 () 創建元組,還可以使用 tuple() 函數創建元組,但 tuple() 偏向於將某個類型轉換為元組,具體用法見下述:

cre_tuple = tuple(('a', 'b', 'c')) # 注意雙括號
print(cre_tuple)
print(type(cre_tuple))
('a', 'b', 'c')
<class 'tuple'>

1.3 元組(單個元素)

當元組中只包含一個元素時,需要在元素後面添加逗號, ,否則括號會被當作運算符使用:

tuple_1 = (20)
print(type(tuple_1)) # <class 'int'>
tuple_2 = (20,)
print(type(tuple_2)) # <class 'tuple'>

當元組中只含一個元素未添加逗號時,使用 type() 打印其類型時,會輸出 <class 'int'>

當元組中只含一個元素並添加逗號時,使用type() 打印其類型時,會輸出 <class 'tuple'>

1.4 元組 VS 列表

  • 在Python中,元組與列表相似,不同之處在於元組的元素不能修改,而列表的元素可以修改
  • 元組使用 小括號(),列表使用 中括號[]

2、訪問元組

和列表一樣,我們既可以使用下標索引訪問元組中的某個元素(得到一個元素的值),也可以使用切片訪問元組中的一組元素(得到是子元組)。

2.1 下標索引訪問

下標索引訪問元組分為兩大類,即正向索引反向索引,格式為 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)…

2.2 切片訪問

如若對上方描述不太理解,可參考下表:

元組值wzqlglgzwhlsjhxw正向索引012345反向索引-6-5-4-3-2-1

使用切片訪問元組的格式為 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 代表的元素。

2.3 for 循環遍歷元組

可以使用 for 循環遍歷元組中的項目:

fruit_tuple = ('apple', 'pear', 'cherry')
for i in fruit_tuple:
print(i)
apple
pear
cherry

2.4 檢查項目是否存在

要確定元組中是否存在指定的項,我們可以使用 in 關鍵字:

# 檢查元組中是否存在'apple'
fruit_tuple = ('apple', 'pear', 'cherry')
print('apple' in fruit_tuple)
True

使用 in 關鍵字檢查元組中是否存在指定項時,如果存在,則返回 True ;反之,則返回 False

2.5 更改元組值

創建元組後,我們將無法更改其值。元組是不可變的,或者也被稱為恆定的。

但是有一種解決方法:可以先將元組轉換為列表,更改列表值,然後再將其轉換回元組

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')

2.6 元組連接(合並)/復制

與字符串一樣,元組之間可以使用 + 號和 * 號實現元組的連接復制,這就意味著它們可以生成一個新的元組。

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')

2.7 元組不可變性

所謂元組的不可變性指的是元組所指向的內存中的內容不可變。

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 ,綁定到了新的對象了,不是修改了原來的對象。

3、內置函數

3.1 打印輸出 print()

1、print()函數

print() 函數的功能我們已經非常熟悉了,就是打印輸出。

my_tuple = ('name', True, 21)
print(my_tuple)
('name', True, 21)

3.2 確定元組項目 len()

2、len()函數

當我們要確定一個元組有多少項目(元素)時,可以使用len()函數。

fruit_tuple = ('apple', 'banana', 'cherry')
print(len(fruit_tuple))
3

3.3 返回變量類型 type()

3、type()函數

使用 type() 函數可以確定變量是什麼類型(字符串、列表、元組、字典或集合)。

當對tup_1 = (20)使用 type() 確定變量類型時,會返回<class 'int'>,表明這是一個整型。所以當一個元組只含有一個元素時,一定要加上逗號,

當對tup_1 = (20,)使用 type() 確定變量類型時,會返回<class 'tuple'>,表明這是一個元組

3.4 轉換為元組 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)

3.5 元組元素最大/小值 max()、min()

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

3.6 刪除元組 del

元組中的元素值是不允許刪除的,但我們可以使用 del 函數來刪除整個元組。

word_tuple = ('a', 'b', 'c')
del word_tuple

當我們使用 del 函數刪除某元組後,再使用 print() 函數打印輸出時,會報錯NameError: name 'word_tuple' is not defined,表明該元組未被定義。

4、內置方法

4.1 元素出現次數 count()

count() 方法返回指定值在元組中出現的次數。

語法

tuple.count(value)

參數值

參數秒速value必需。要檢索的項目。

實例

返回值 5 在元組中出現的次數:

num_tuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5, 5)
print(num_tuple.count(5))
3

4.2 元素位置 index()

index() 方法查找指定值的第一次出現。

語法

tuple.index(value)

參數值

參數描述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

5、總結

函數描述print()打印輸出len()確定元組項目type()返回變量類型tuple()轉換為元組max()返回元組元素最大值min()返回元組元素最小值del刪除元組方法描述count()返回元組中指定值出現的次數index()在元組中搜索指定的值並返回它被找到的位置

以上就是本文的全部內容啦!如果對您有幫助,麻煩點贊啦!收藏啦!歡迎各位評論區留言!!!

最後編輯於:2022/7/25 20:43


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved