1、元組與列表的不同點
列表是可以修改的。如果想要傳遞的信息,不被算改,列表就不合適了。
元組同列表一樣,都是可以封裝多個、不同類型的元素在內。
但最大的不同點在于:
元組一旦定義完成,就不可修改
所以,當我們需要在程序內封裝數據,又不希望封裝的數據被算改,那么元組就非常合適了。
2、定義元組
定義元組是使用小括號
定義元組:變量名稱 = (元素1, 元素2, ……)
定義空元組:變量名稱 =()? ? ? 或 ? ? 變量名稱= tuple()
元組里只有一個數據:變量名稱 = (元素1,)#這個數據的后面要加逗號
定義多維元組:變量名稱 = ((1, 2, 3), ?(4, 5, 6))?
數據容器 | 可變性 | 語法表示 | 使用場景 | 迭代和索引 | ?性能 |
列表(list) | 可變(可以添加、刪除或修改其中的元素) | 使用方括號 [] 來表示,元素之間使用逗號分隔。 例如:my_list = [1, 2, 3] | 通常,列表用于存儲可變的數據集合,例如保存多個相同類型的數據。 | 都支持迭代和索引操作。 例如my_list[0]? ???????列表還提供了一些方便的方法,如append()?和pop()來添加和刪除元素。 | 由于元組是不可變的,相比之下,列表在執行添加、刪除和修改等操作時需要更多的時間和內存。因此,如果數據不需要更改,使用元組可能會更高效。 |
元組(tuple) | 不可變(一旦創建就不能改變其內容) | 使用圓括號 () 來表示,元素之間同樣使用逗號分隔。 例如:my_tuple = (1, 2, 3) | 元組則通常用于存儲不可變的數據集合,例如表示一個點的坐標。 | 都支持迭代和索引操作。 例如:my_tuple[1] |
3、元組的操作
方法 | 作用 |
index() | 查找某個數據,如果數據存在返回對應的下標,否別報錯 |
count() | 統計某個數據在當前元組出現的次數 |
len(元組名) | 統計元組內的元素個數 |
還可以遍歷元組
t1 = (111, "Hello", "World", "World", "Python")
# index查找
index1 = t1.index("Hello")
index2 = t1.index("World")
print(f"元素Hello在元組中的位置是: {index1}") # 輸出:元素Hello在元組中的位置是: 1
print(f"元素World在元組中的位置是: {index2}") # 輸出:元素World在元組中的位置是: 2(所以只會輸出第一個遇到的下標)# count統計方法
num = t1.count("World")
print(f"元組t1中一共有{num}個World") # 輸出:元組t1中一共有2個World# len函數統計元組元素數據
num = len(t1)
print(f"t1的長度是{num}") # 輸出:t1的長度是5# 元組的遍歷:while
print("元組的元素有", end=":")
index = 0
while index < len(t1):print(t1[index], end=",") # 輸出結果:元組的元素有:111,Hello,World,World,Python,index += 1print()
# 元組的遍歷:for
print("元組的元素有", end=":")
for element in t1:print(element, end=",") # 輸出結果:元組的元素有:111,Hello,World,World,Python,
其他的都不可以使用,因為元組不可修改。
例如:在上述基礎上,修改元組的元素值時,會報錯:
t1[0] = 222
# 報錯:TypeError: 'tuple' object does not support item assignment
4、元組(tuple)內嵌套列表(list)
可以修改元組內的list的內容(修改元素、增加、刷除、反轉等)
t2 = (1, 2, ['Hello', 'World'])
t2[2][1] = 'Python'
print(t2) # 輸出:(1, 2, ['Hello', 'Python'])
4、練習案例
題目要求:定義一個元組,內容是:('周杰輪',11,[football,'music']),記錄的是一個學生的信息(姓名、年齡、愛好),請通過元組的功能(方法),對其進行:
1.查詢其年齡所在的下標位置。
2.查詢學生的姓名。
3.副除學生愛好中的football
4.增加愛好:coding到愛好list內