小白學 Python(11):基礎數據結構(元組)
- 2019 年 11 月 1 日
- 筆記
人生苦短,我選Python
前文傳送門
元組(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 上,方便大家取用。