取得子元組

Python SELF TW
等級 8 , 課堂 3
開放

12.1 索引範圍

取得子元組的程式碼看起來就像取得子清單一樣。 這方面元組跟它們非常相似。不想重複內容, 不過溫故而知新嘛…

取得子元組,或者slicing,可以提取元組的部分來創建新的元組。 當你需要處理存放在元組中的特定數據段時,這個過程特別有用。

slicing語法

可以使用方括號來創建slicing,裡面用冒號分隔開始和結束索引。 如果沒有指定開始索引,slicing從第一個元素開始;如果沒有指定結束索引,slicing一直到元組的末尾。

可以使用 tuple[start:stop:step]語法來獲得元組的slicing,其中:

  • start — 開始的元素索引(包含);
  • stop — 結束的元素索引(不包括);
  • step — 選擇元素的步驟。

範例:


my_tuple = (0, 1, 2, 3, 4, 5)
sub_tuple = my_tuple[1:4]  # 取得索引從1到3的子元組
print(sub_tuple) # 輸出 (1, 2, 3)
            
sub_tuple_with_step = my_tuple[0:6:2]  # 取得從0到5的每隔一個的元素
print(sub_tuple_with_step) # 輸出 (0, 2, 4) 
        

如果start未指定,默認為0;如果stop未指定,默認為len(tuple)。參數step默認為1。

範例:


# 創建具有從0到5的元素的元組
my_tuple = (0, 1, 2, 3, 4, 5)

# 創建從原始元組的第二個元素開始的新元組
sub_tuple = my_tuple[1:] 
print(sub_tuple)  # 輸出: (1, 2, 3, 4, 5)

# 創建新元組,從頭到原始元組的第四個元素 
# (索引4),步驟為1(默認)
sub_tuple_with_step = my_tuple[:5] 
print(sub_tuple_with_step)  # 輸出: (0, 1, 2, 3, 4)

12.2 負索引

Python中的負索引從-1開始,對應於列表(或元組)的最後一個元素。 -2會指向倒數第二個元素,依此類推。 使用負索引可以簡化從元組結尾訪問元素的操作,而不需要從頭計算它們的位置。

使用範例

我們來看看如何使用負索引來形成slicing。假設我們有一個包含這些值的元組:


my_tuple = (10, 20, 30, 40, 50, 60, 70, 80)

如果要取得包含從結尾到元組中間的部分元素,可以使用負索引。


sub_tuple = my_tuple[-3:-1]
print(sub_tuple) # 輸出 (60, 70)

因此,my_tuple[-3:-1]會選取索引-3(倒數第三個)到-1(不包括最後一個)的元素,會得到元組(60, 70)。

獲得元組的最後一個元素:


my_tuple = (10, 20, 30, 40, 50)
last_element = my_tuple[-1]
print(last_element) # 輸出 50 
    

在這裡,my_tuple[-1]總會返回元組的最後一個元素,當你不知道元組中精確的元素數量時,這非常方便。

反轉元組中的元素:


my_tuple = (10, 20, 30, 40, 50)
reversed_tuple = my_tuple[::-1]
print(reversed_tuple) # 輸出 (50, 40, 30, 20, 10) 
    

使用slicing [::-1] 可以輕鬆有效地翻轉元組中元素的順序,獲得一個新元組,其中的元素是反轉的。

12.3 元組中是否有元素

檢查元組中是否有某個元素是標準操作,讓你知道某個元素是否在元組中。 可以使用運算子in,當元素在元組中時返回True,否則返回False。

使用運算子in

運算子in是檢查元素是否存在的簡單而直觀的方法:


my_tuple = (1, 2, 3, 4, 5)
element = 3
if element in my_tuple:
    print(f"{element} is in the tuple.")
else:
    print(f"{element} is not in the tuple.")
    

檢查元素不存在:

如果你想確認元組中不存在某個元素,只需使用not in結構:


names = ('Alice', 'Bob', 'Charlie')
search_name = 'Alice'
if search_name not in names:
    print(f"{search_name} 不在元組中.")
else:
    print(f"{search_name} 在元組中.")
    

幾乎和處理清單一樣——這就是Python的通用性和簡單性所在。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION