目錄
?8.2.1 元組的常用操作符
8.2.2 []操作符: 索引訪問元組
8.2.3 ?[:]操作符:元組的切片
8.2.4 +操作符:元組的加法
8.2.5 ?*操作符:元組的乘法
8.2.6 元組的關系運算
8.2.7 ?in操作符:查找元素
8.2.8?五一她玩了個狗吃屎
?8.2.1 元組的常用操作符
元組類型是一種抽象數據類型,抽象數據類型定義了數據類型的操作方法,在本節的內容中,著重介紹通過操作符來對元組進行操作。
元組類型常用的操作符如下表所示:
8.2.2 []操作符: 索引訪問元組
元組類型也是一種線性的序列結構,同字符串一樣,可以通過索引來訪問元組中的元素。操作語法:
element = tuple[index]
元組與字符串均為不可變的數據類型,只能通過索引來讀取字符,不能對字符進行修改。而列表可變,可以通過索引來對元素進行修改。
Python中的索引分為正索引和負索引。正索引從0開始進行編號,表示數據集合中的第一個元素。負索引從-1開始編號,表示數據集合中的倒數第一個元素。正負索引值必須在有效的范圍之內,否則會拋出越界訪問的錯誤信息。
代碼實例:
# __desc__ = 通過索引來訪問元組中的元素numbers = (1,2,3,4)# 1.讀取元組中的第一個元素
first_number = numbers[0]# 2.讀取元組中的最后一個元素
last_number = numbers[-1]
8.2.3 ?[:]操作符:元組的切片
元組的切邊操作同字符串的切片操作。對元組執行切片操作以后,返回的是一個新的元組。
操作語法:
new_tuple = tuple[:]
代碼實例:
# __desc__ = 對元組執行切片操作# 定義元組類型變量
numbers = (1,2,3,4)container = numbers[0:2]
# container的輸出為(1,2)container = numbers[:2]
# container的輸出為(1,2)container = numbers[2:]
# container的輸出為(3,4)container = numbers[-3:-1]
# container的輸出為(2,3)
8.2.4 +操作符:元組的加法
元組的加法是把兩個元組中的元素合并到一個新的元組中。
操作語法:
new_tuple = tuple0 + tuple1
代碼實例:
# __desc__ = 對元組執行加法操作# 定義變量negative_numbers表示負數
negative_numbers = (-1,-2,-3,-4)# 定義變量 positive_numbers表示正數
positive_numbers = (1,2,3,4)# 定義變量 natural_numbers表示自然數
natural_numbers = negative_numbers + positive_numbers
# natural_numbers的輸出為(-1,-2,-3,-4,1,2,3,4)
8.2.5 ?*操作符:元組的乘法
"*" 操作符用來對元組進行復制,返回一個新的列表。
操作語法:
new_tuple = tuple * number
讀者需注意,number必須為整型數字。
代碼實例:
# __desc__ = 對元組執行乘法操作numbers = (-1,-2,-3)
new_numbers = numbers * 2# new_numbers的輸出為(-1,-2,-3, -1,-2,-3)# *號后的整型值小于等于0時,輸出空元組
empty = numbers * 0
# empty為空元組
8.2.6 元組的關系運算
使用關系運算符來對元組進行關系運算,返回的結果為布爾類型。元組的關系運算同列表的關系運算。
操作語法:
boolean = tuple0 > tuple1
代碼實例:
# __desc__ = 對元組執行關系運算left = (1,3,99)
right = (2,)result = left > right
# result的輸出為False
元組的關系運算是按序進行比較的,這里的按序比較是從元組的第一個元素開始,逐元素進行比較。只有在元素值相同,順序也相同的情況下,兩個元組才相等,否則以元素先后的大小關系來確定元組的大小關系。
例如在上文的代碼中,雖然列表right只有一個元素,但是right中的首元素大于列表left中的第一個元素。這時Python會直接判定元組right大于元組left,即使元組left后面的元素都比元組right中的元素大。
我們現在來寫一個算法,判斷兩個元組的大小關系:
# __desc__ = 通過while循環來判斷元組是否相等left = (3,3,3,3,99,3)
right = (3,3,3,3,3,109)# 執行全局的len方法來獲取復合數據類型的元素數
length_of_left = len(left)
length_of_right = len(right)length = length_of_left if length_of_left < length_of_right else length_of_right
index = 0'''
定義is_equal變量,如果值為True表示相等,
如果為False,則表示不相等
'''
is_equal = True# 以最小的元組長度來進行遍歷
# 這樣可以避免訪問越界
while index < length:if left[index] != right[index]:is_equal = Falsebreakelif left[index] < right[index]:is_equal = Falsebreak index += 1
else:# 如果正常退出while循環,說明在最小長度內,元組的元素都相等is_equal = False if length_of_left != length_of_right else True
8.2.7 ?in操作符:查找元素
使用 "in" 操作符來判斷元素是否存在于元組中,若存在則返回True,否則返回False。
操作語法:
boolean = element in tuple
當需要在代碼中表示是否不存在時,需通過邏輯非運算符:
boolean = element not in tuple
代碼實例:
# __desc__ = 通過in操作符來執行元素查找natural_numbers = (1,2,3,4,5,6,7,8,9)
number = 99if number in natural_numbers:# 如果number存在與列表中,那么表達的輸出為Trueprint("{} in numbers:{}".format(number, numbers))
else:print("there is no {} in numbers {}".format(number, numbers))
博主正在CSDN寫一套Python高級爬蟲+JS逆向+安卓逆向的教程:
高級爬蟲+安卓逆向,手把手教你成為一流的爬蟲高手https://blog.csdn.net/thereisadownloader/category_12930002.html
8.2.8?五一她玩了個狗吃屎
跟薯條老師學后端開發,高級爬蟲(JS逆向+安卓逆向),數據分析,大數據開發,量化交易,以及機器學習+深度學習算法。堅定自己的學習目標,保持學習的熱情,那你成為高手只是時間問題。
薯條老師的學生在南方電網,林氏家居,京東,阿里等大廠。想系統學習Python和Java的同學,可以移步薯條老師的個人技術博客:薯條老師的個人技術博客http://www.chipscoco.com/?對本節教程有任何不懂的同學,亦可在評論區中進行評論。薯條老師會詳細解答你們提出的每一個問題。