1. 程式人生 > >小白學 Python(11):基礎資料結構(元組)

小白學 Python(11):基礎資料結構(元組)

人生苦短,我選Python

前文傳送門

小白學 Python(1):開篇

小白學 Python(2):基礎資料型別(上)

小白學 Python(3):基礎資料型別(下)

小白學 Python(4):變數基礎操作

小白學 Python(5):基礎運算子(上)

小白學 Python(6):基礎運算子(下)

小白學 Python(7):基礎流程控制(上)

小白學 Python(8):基礎流程控制(下)

小白學 Python(9):基礎資料結構(列表)(上)

小白學 Python(10):基礎資料結構(列表)(下)

元組(tuple)

在 Python 中,元組和列表是非常類似的一種資料結構,如果前面有好好看過有關列表的文章的話,只需要抓住一些核心點,可能這篇文章會顯得有些多餘。

先簡單介紹一下元組和列表的區別:

  • 元組的元素不能修改
  • 元組使用小括號,列表使用方括號

建立元組

用逗號隔開的就是元組,但是為了美觀和程式碼可讀性,一般加小括號。

tuple1 = "Python", "Java", 2011, 2015
print(tuple1)

tuple2 = ("Python", "Java", 2011, 2015)
print(tuple2)
print(type(tuple2))

執行結果如下:

('Python', 'Java', 2011, 2015)
('Python', 'Java', 2011, 2015)
<class 'tuple'>

在建立元組的時候可以包含列表,如下:

tuple3 = ("Python", "Java", [1 ,2, 'python', 'java'], 2011, 2015)
print(tuple3)

執行結果:

('Python', 'Java', [1, 2, 'python', 'java'], 2011, 2015)

元組的基本操作

元組的基本操作和列表非常的類似,包括:

  • 索引
  • 切片
  • 連線
  • 複製
  • 對內部元素迴圈
  • 查詢元組中是否有某元素
  • 刪除元組
  • 返回元組中最大值和最小值
  • 獲取元組長度

這麼多操作,我就不分開展示了,直接貼一段程式碼,具體含義已經加在註釋中:

tuple4 = (0 ,1, 2, 3, 4, 5, 6, 7, 8, 9)
print(tuple4)
# 索引
print(tuple4[2])
# 索引
print(tuple4[-2])
# 切片
print(tuple4[0:8:2])
# 切片
print(tuple4[8:1:-1])

tuple5 = (2333, '98k')
# 連線
print(tuple4 + tuple5)
# 迴圈
for index in tuple4:
    print(index)
# 查詢元素是否存在
print(1 in tuple4)
print(11 in tuple4)
# 刪除元組
# del tuple5
# print(tuple5)

# 取最大
print(max(tuple4))
# 取最小
print(min(tuple4))
# 元組長度
print(len(tuple4))
# 修改元組
# tuple4[0] = 11

執行結果:

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
2
8
(0, 2, 4, 6)
(8, 7, 6, 5, 4, 3, 2)
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 2333, '98k')
0
1
2
3
4
5
6
7
8
9
True
False
9
0
10

最後一個修改元組會報錯,所以我先註釋掉了,感興趣的同學可以把註釋去掉看下具體報錯內容。

元組與列表間的互相轉化

# 相互轉化
print(type(tuple4))
print(list(tuple4))
print(type(list(tuple4)))
list1 = [0 ,1, 2, 3, 4, 5, 6, 7, 8, 9]
print(type(list1))
print(tuple(list1))
print(type(tuple(list1)))

結果如下:

<class 'tuple'>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
<class 'list'>
<class 'list'>
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
<class 'tuple'>
  • 在列表外套一層 tuple() 就可以轉為元組
  • 在元組外套一層 list() 就可以轉為列表

元組解包

# 元組解包
tuple6 = (1, 2, 3)
print(tuple6)
a, b, c = tuple6
print(a, b, c)

結果如下:

(1, 2, 3)
1 2 3

希望各位同學在學習的過程中可以親自動手實踐一下示例程式碼,畢竟自己不敲程式碼是永遠學不會程式碼的:)

示例程式碼

本系列的所有程式碼小編都會放在程式碼管理倉庫 Github 和 Gitee 上,方便大家取用。

示例程式碼-Github

示例程式碼-Gi