筆者:風起怨江南 出處:https://blog.csdn.net/JackMengJin 筆者原創,文章歡迎轉載,如果喜歡請點贊+關注,感謝支持!
目錄
元組的定義和用法
本篇主要講Python元組的定義和用法。說到元組就要綁定和列表的討論:
列表非常適合用於存儲在程序運行期間可能變化的數據集。列表可以修改。然而有時候需要創建一系列不可修改的元素,元組可以滿足這種需求。
Python將不能修改的值稱爲不可變的,而不可變的列表被稱爲元組。
一.元組的定義
和列表一樣,元組也是序列->傳送門。唯一的差別在於元組是不能修改的(當然字符串也是不能修改的)。
1.1 元組的語法
元組的語法很簡單,只要將一些值用逗號分隔,就能自動創建一個元組:
#元組
tuple_number = 1,2,3
print(tuple_number)
print(type(tuple_number))
(1, 2, 3)
<class 'tuple'>
可以看到元組還可以用圓括號擴起,兩種都是元組的表現方式:
#元組
tuple_number = (4,5,6)
print(tuple_number)
print(type(tuple_number))
(4, 5, 6)
<class 'tuple'>
所以元組看起來猶如列表,但是是使用圓括號而不是方括號來標識。
這裏我們嘗試下創建一個元組,並試着修改元組裏第一個元素的值:
#元組
tuple_fruits = ('apple','pear','peach','jujube')
print(tuple_fruits)
tuple_fruits[0] = 'banana'
Traceback (most recent call last):
File "G:/helloWorld/python/pycharm/NingMeng/demo377.py", line 6, in <module>
tuple_fruits[0] = 'banana'
TypeError: 'tuple' object does not support item assignment
報錯打印:元組類型對象不支持修改,嘗試修改元組的操作是被禁止的,不能給元組的元素賦值。
所以所有的元素賦值和切片賦值對於元組(字符串也是)都是非法的。
1.2 序列、列表和元組小結
根據Python學習04和05講的內容,這裏提前做一下關於序列、列表和元組的小結:
序列:一種數據結構,元素帶編號,編號從0開始。
列表、字符串和元組都是與序列。
列表是可變的,元組和字符串是不可變的。
要訪問序列的一部分,可以使用切片操作(提供兩個制定切片起始和結束位置的索引)。
修改列表可以給元素賦值,也可以使用賦值語句給切片賦值。
確定特定的值是否包含在序列中,可以使用運算符in。
二.元組的用法
既然元組也屬於序列,那麼序列的操作對於元組也是支持的。
2.1 將序列轉換成元組
將序列轉換爲元組需要用到函數tuple()。這裏以字符串和列表爲例。
將字符串轉換爲元組:
str_names = '張三、李四、王二、小明'
print(type(tuple(str_names)))
print(tuple(str_names))
張三、李四、王二、小明
<class 'tuple'>
('張', '三', '、', '李', '四', '、', '王', '二', '、', '小', '明')
將列表轉換爲元組:
list_names = ['Jack','Rose','Kobe','James','Jane','King','Bill','Jone','Mary','May','Tina']
print(list_names)
print(type(tuple(list_names)))
print(tuple(list_names))
['Jack', 'Rose', 'Kobe', 'James', 'Jane', 'King', 'Bill', 'Jone', 'Mary', 'May', 'Tina']
<class 'tuple'>
('Jack', 'Rose', 'Kobe', 'James', 'Jane', 'King', 'Bill', 'Jone', 'Mary', 'May', 'Tina')
2.2 索引
#元組
tuple_fruits = ('apple','pear','peach','jujube','banana','cherry','hami melon','watermelon','litchi')
print(tuple_fruits)
print(tuple_fruits[2])
print(tuple_fruits[-3])
('apple', 'pear', 'peach', 'jujube', 'banana', 'cherry', 'hami melon', 'watermelon', 'litchi')
peach
hami melon
2.3 切片
#元組
tuple_fruits = ('apple','pear','peach','jujube','banana','cherry','hami melon','watermelon','litchi')
print(tuple_fruits)
print(tuple_fruits[1:6])
print(tuple_fruits[::-1])
print(tuple_fruits[2:8:3])
('apple', 'pear', 'peach', 'jujube', 'banana', 'cherry', 'hami melon', 'watermelon', 'litchi')
('pear', 'peach', 'jujube', 'banana', 'cherry')
('litchi', 'watermelon', 'hami melon', 'cherry', 'banana', 'jujube', 'peach', 'pear', 'apple')
('peach', 'cherry')
2.4 相加
#元組
tuple_fruits = ('apple','pear','peach','jujube','banana','cherry','hami melon','watermelon','litchi')
tuple_names = ('Jack','Rose','Kobe','James','Jane','King','Bill','Jone','Mary','May','Tina')
print(tuple_fruits + tuple_names)
('apple', 'pear', 'peach', 'jujube', 'banana', 'cherry', 'hami melon', 'watermelon', 'litchi', 'Jack', 'Rose', 'Kobe', 'James', 'Jane', 'King', 'Bill', 'Jone', 'Mary', 'May', 'Tina')
2.5 相乘
tuple_numbers = (1,2,3,4,5)
print(tuple_numbers * 5)
(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
2.6 成員資格檢查
tuple_numbers = (1,2,3,4,5)
print(4 in tuple_numbers)
True
tuple_names = ('Jack','Rose','Kobe','James','Jane','King','Bill','Jone','Mary','May','Tina')
print('jack' in tuple_names)
print('KOBE' in tuple_names)
False
False
2.7 初識for循環
這裏不過多討論for循環,直接拿來使用,在下一節學習中再具體研究for、while循環。
循環可以對列表或元組的每個元素都採取一個或一系列相同的措施,從而高效的處理任何長度的列表、元組。
遍歷元組中所有的值:
tuple_names = ('Jack','Rose','Kobe','James','Jane','King','Bill','Jone','Mary','May','Tina')
for name in tuple_names:
print(name)
Jack
Rose
Kobe
James
Jane
King
Bill
Jone
Mary
May
Tina
嘗試下遍歷切片:
tuple_names = ('Jack','Rose','Kobe','James','Jane','King','Bill','Jone','Mary','May','Tina')
for name in tuple_names[2:5]:
print(name)
Kobe
James
Jane
最後在嘗試下遍歷字符串和列表:
str_names = '張三、李四、王二、小明'
for name2 in str_names:
print(name2)
張
三
、
李
四
、
王
二
、
小
明
list_names = ['Jack','Rose','Kobe','James','Jane','King','Bill','Jone','Mary','May','Tina']
for name3 in list_names:
print(name3)
Jack
Rose
Kobe
James
Jane
King
Bill
Jone
Mary
May
Tina
可以看到短短几行代碼就可以打印出整個序列,循環的強大超出你的想象,下一講就開始學習Python循環的用法。
以上便是《Python學習05講》所有內容,更多python學習請繼續關注我的博客——風起怨江南,不定期更新,原創不易,如果喜歡請點贊和關注,謝謝大家的支持!
獲得更多免費的學習資料請添加微信公衆號——風起怨江南,謝謝大家的關注和支持!