CodeGym /課程 /Python SELF TW /高級元組操作

高級元組操作

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

15.1 創建元組的複本

好的,我們已經知道元組 (tuples) 是不可變的元素序列。 因為它們不可變,所以創建元組的複製似乎是一個不那麼重要的 任務,畢竟與列表不同,元組在創建後不會更改。

然而在某些情況下,可能需要創建元組的副本, 特別是當你需要處理其單獨版本而不更改原始數據時。 以下是一些主要的方法:

直接賦值

最簡單的元組複製方法是使用直接賦值。這將創建一個新的元組對象, 但由於元組是不可變的,兩個對象將引用相同的數據。


original_tuple = (1, 2, 3, 4, 5)
copied_tuple = original_tuple
print(copied_tuple)
        

在這種情況下,copied_tuple 將引用與 original_tuple 相同的對象。

使用 tuple() 函數

另一種創建元組副本的方法是使用內置函數 tuple()。 這個函數通過複製原始元組的元素來創建新的元組。


original_tuple = (1, 2, 3, 4, 5)
copied_tuple = tuple(original_tuple)
print(copied_tuple)

        

當你想確保創建一個新的對象,即使原始對象可能是其他可迭代對象時,這種方法特別有用。

通過列表轉換

有時可能需要創建一個可變的元組副本作為列表,以便進行更改,然後再將其轉換回元組。


original_tuple = (1, 2, 3, 4, 5)

temp_list = list(original_tuple)
temp_list.append(6)
copied_tuple = tuple(temp_list)
            
print(copied_tuple)

        

在這個例子中,我們首先將元組轉換為列表,添加新的元素,然後再將列表轉換回元組。

15.2 合併元組

不同於列表,元組在創建後無法更改,但你可以通過合併現有的元組來創建新的元組。 合併元組是一個常見的操作,在不同的編程場景中都很有用。

合併元組的主要方法

連接

最簡單的合併兩個或多個元組的方法是使用 運算符 +。 這個方法創建一個新的元組,這是原始元組連接的結果。


tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
combined_tuple = tuple1 + tuple2
            
print(combined_tuple)
        

在這個例子中,combined_tuple 會包含 (1, 2, 3, 4, 5, 6)。

乘以整數

你還可以使用運算符 * 將元組乘以整數。 這會重複元組指定次數,並創建新的元組。


tuple1 = (1, 2, 3)
multiplied_tuple = tuple1 * 3
            
print(multiplied_tuple)
        

這裡 multiplied_tuple 將會包含 (1, 2, 3, 1, 2, 3, 1, 2, 3)。

函數 itertools.chain

為了合併大量元組,可以使用模塊 itertools 中的 chain 函數。 當合併的元組數量未知時,這個方法很方便。


from itertools import chain

tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
tuple3 = (7, 8, 9)
            
combined_tuple = tuple(chain(tuple1, tuple2, tuple3))
print(combined_tuple)
        

結果會是 (1, 2, 3, 4, 5, 6, 7, 8, 9)。

15.3 嵌套元組

包含其他元組的元組被稱為 嵌套元組 (nested tuples)。 嵌套元組提供了一種便利的方法來組織和結構化數據, 特別是在需要表示多維數據或複雜結構時。

你可以創建嵌套結構來合併元組。這在將數據組織成多維結構時很有用。 在 Python 中創建嵌套元組就如同創建普通元組一樣簡單。 你只是將一個元組包括在另一個元組中。


nested_tuple = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
        

在這個例子中,nested_tuple 包含三個元組,每個元組由三個元素組成。

從普通元組創建嵌套元組的示例:

在這個例子中,nested_tuple 包含三個元組,每個元組由三個元素組成。


tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
nested_tuple = (tuple1, tuple2)
            
print(nested_tuple)
        

這裡 nested_tuple 將包含 ((1, 2, 3), (4, 5, 6))。

訪問嵌套元組的元素

訪問嵌套元組的元素是通過多重索引完成的。 你首先指定外部元組的索引,然後指定內部元組的索引。


nested_tuple = ((1, 2, 3), (4, 5, 6), (7, 8, 9))

# 訪問第二個嵌套元組中的元素 5
element = nested_tuple[1][1]
print(element)  # 輸出: 5
        

多維數組

嵌套元組經常用於表示二維或多維數組。 例如,一個數據表可以表示為元組的元組,其中每一行都是獨立的元組。

數據結構化

嵌套元組對於結構化數據很有用,例如多個位置的地理坐標(緯度和經度):


locations = (("New York", (40.7128, -74.0060)), 
             ("Los Angeles", (34.0522, -118.2437)), 
             ("Chicago", (41.8781, -87.6298)))
        
1
問卷/小測驗
Python 中的 Tuple,等級 8,課堂 6
未開放
Python 中的 Tuple
Python 中的 Tuple
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION