筆記
元組
不可以修改的清單。
與字元串,清單進行對比:
1.可否修改:元組和字元串一樣都不能修改;但清單可以修改。
2.所含元素:元組和清單一樣,都可以包含任何類型元素;但字元串就是str類型。
建立元組
1.tuple1 = (1,2,3,4,5)
2.空元組 tuple1 = ()
3.标志性符号是“,”
驗證如下:

再如:
但空元組的建立隻能寫成tuple1 = () 而非 tuple1 = (,)
元組的操作
1.索引,切片,拷貝
與清單相同,不做贅述。
2.連接配接操作符,重複操作符,成員資格運算符,邏輯運算符
與清單相同,不做贅述。
3.改變元組
與改變字元串相同,利用切片和連接配接的方法實作添加或删除某個元素(實為建立一個新元組,而非改變了原來的元組)。
4.删除元組
del tuple1(很少使用,因為Python有回收機制)
課後作業
0. 請用一句話描述什麼是清單?再用一句話描述什麼是元組?
答:
清單:一個大倉庫,可包含任何類型的元素,可随意添加删除元素。
元組:戴上了枷鎖的清單,可包含任何元素,但不可以随意添加删除元素。
1. 什麼情況下你需要使用元組而不是清單?
答:
不希望所含元素發生改變時。
2. 當元組和清單掉下水,你會救誰?
答:
我會救清單,因為清單可以實作的功能更多,更友善。
3. 請将下圖左邊清單的内置方法與右邊的注釋連線,并圈出元組可以使用的方法。
4. 建立一個元組,什麼情況下逗号和小括号必須同時存在,缺一不可?
答:
除了建立空元組以外的情況。
5. x, y, z = 1, 2, 3 請問x, y, z是元組嗎?
答:
所有的多對象的、逗号分隔的、沒有明确用符号定義的這些集合預設的類型都是元組,自己在IDLE中鍵入以下代碼,并體會一下:
>>> x, y, z = 1, 2, 3
>>> type(x)
>>> h = x, y, z
>>> type(h)
6. 請寫出以下情景中應該使用清單還是元組來儲存資料:
1) 遊戲中角色的屬性:清單
2) 你的身份證資訊:元組
3) 論壇的會員:清單
4) 團隊合作開發程式,傳遞一個你并不了解具體實作的函數的參數:元組
5) 航天火箭各個元件的具體配置參數:元組
6) NASA系統中記錄已經發現的行星資料:清單
7. 上節課我們通過課後作業的形式學習到了“清單推導式”,那請問如果我把中括号改為小括号,會不會得到“元組推導式”呢?
答:
Python3 木有“元組推導式”,為嘛?沒必要丫,有了“清單推導式”已經足夠了。
那為什麼“>>> tuple1 = (x**2 for x in range(10))”不會報錯?
因為你誤打誤撞得到了一個生成器:
>>> type(tuple1)
<class 'generator'>
關于生成器的概念小甲魚今後會細講,你可以嘗試這麼去通路我們剛剛的生成器:
# 注意,Python3 開始 next() 方法改為 __next__() 哦~
>>> tuple1.__next__()
0
>>> tuple1.__next__()
1
>>> tuple1.__next__()
4
>>> tuple1.__next__()
9
>>> tuple1.__next__()
16
>>> tuple1.__next__()
25
>>> tuple1.__next__()
36