Python學習05:元組的定義和用法

筆者:風起怨江南 出處:https://blog.csdn.net/JackMengJin 筆者原創,文章歡迎轉載,如果喜歡請點贊+關注,感謝支持!

 

目錄

元組的定義和用法

一.元組的定義

1.1 元組的語法

1.2 序列、列表和元組小結

二.元組的用法

2.1 將序列轉換成元組

2.2 索引

2.3 切片

2.4 相加

2.5 相乘

2.6 成員資格檢查

2.7 初識for循環


元組的定義和用法

本篇主要講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學習請繼續關注我的博客——風起怨江南,不定期更新,原創不易,如果喜歡請點贊和關注,謝謝大家的支持!

獲得更多免費的學習資料請添加微信公衆號——風起怨江南,謝謝大家的關注和支持!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章