集合、列表和元組之間的區別


在 Python 中使用資料結構提供了一種複雜且複雜的方法來表示數字、字串和其他 Python 物件的集合。Python 的內建資料結構,如列表、元組和集合,非常吸引人,並且表現出將它們彼此區分開的獨特特徵。這些資料結構具有容納物件組的非凡能力,這使得它們獨一無二。在本文中,我們將透過示例瞭解這三種資料結構中哪一種最適合。

列表

建立後,可以更改、新增或刪除專案。它也可以被修改和重新排序,並且由於它是索引的,因此可以根據其位置訪問單個專案。

示例

my_list = [1, 2, 3, 4, 5]
print(my_list)

輸出

[1, 2, 3, 4, 5]

建立列表時,您會得到一個可以更改和重新排序的專案集合。專案可以包含在方括號中,並使用list() 函式建立。可以使用索引或切片訪問元素;append() 和extend() 方法用於新增元素;remove() 和pop() 方法用於刪除元素;關鍵字 in 用於檢查元素;len() 函式用於確定列表的長度;sort() 方法用於排序和反轉列表中元素的順序。

示例

# Create a list
fruits = ['apple', 'banana', 'orange']

# Access elements
print(fruits[0])

# Add elements
fruits.append('kiwi')
print(fruits)

# Remove elements
fruits.remove('banana')
print(fruits)

# Check if element is in list
print('apple' in fruits)

# Find length of list
print(len(fruits))

# Sort the list
fruits.sort()
print(fruits)

# Reverse the list
fruits.reverse()
print(fruits)

輸出

apple
['apple', 'banana', 'orange', 'kiwi']
['apple', 'orange', 'kiwi']
True
3
['apple', 'kiwi', 'orange']
['orange', 'kiwi', 'apple']

元組

一個不可變的專案集合,是有序的,並且建立後無法新增任何內容;此外,您無法更改任何內容);並且可索引(您可以根據其位置找到特定的專案)。

示例

my_tuple = (1, 2, 3, 4, 5)
print(my_tuple)

輸出

(1, 2, 3, 4, 5)

可以使用兩種方法中的一種來建立它們:使用tuple() 函式或透過將元件括起來。可以使用排序或切片來訪問元組的各個部分。由於它們是永久的,因此建立後無法更改任何元件。您可以使用“in”來確定元組是否包含一個成分。使用len() 函式確定元組的範圍。例如,日期和位置通常儲存在元組中,因為它們一旦建立就不能更改。

集合

無序的唯一專案的集合,不能包含重複項;此外,由於集合沒有索引,因此無法根據其位置找到單個專案。

示例

my_set = {1, 2, 3, 4, 5}
print(my_set)

輸出

{1, 2, 3, 4, 5}

在 Python 中,可以使用包含在花括號中的逗號分隔的值列表來建立集合,它是一個無序的不同元件的集合。可以使用add() 方法或update() 方法將專案新增到集合中。雖然discard() 方法在刪除元件時不會執行任何操作,但delete() 方法會引發錯誤。您可以執行集合操作,如並集、交集和差集,並且可以使用set() 函式將列表轉換為集合。在從列表中刪除副本或對其應用集合操作時,這很有用。

示例

# Create a set
numbers = {1, 2, 3, 4}

# Add elements
numbers.add(5)
print(numbers)

# Remove elements
numbers.discard(3)
print(numbers)

# Check if element is in set
print(2 in numbers)

# Find length of set
print(len(numbers))

# Perform set operations
set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(set1.union(set2)) 
print(set1.intersection(set2)) 
print(set1.difference(set2))

# Convert list to set
numbers_list = [1, 2, 3, 4, 5]
numbers_set = set(numbers_list)

輸出

{1, 2, 3, 4, 5}
{1, 2, 4, 5}
True
4
{1, 2, 3, 4}
{2, 3}
{1}

列表與元組與集合 - 比較

在學習了列表、元組和集合資料結構的基礎知識之後,讓我們從不同方面比較它們。

可變與不可變

元組是不可變的,因此一旦定義,它們的元件就不能更改。由於記錄和集合是可變的,因此您可以在其中新增、刪除或修改元件。如果您需要一種無法修改的資料格式,請使用元組;否則,請使用集合或列表。

順序

列表和元組保持元素的順序,而集合則不保持。集合是無序的,元素是隨機排列的。

重複元素

列表和集合允許重複元素,而元組則不允許。集合具有一個獨特的特性,即它們僅儲存唯一元素。因此,如果您只想儲存唯一值,請使用集合,否則請使用列表或元組。

效能

由於這些資料結構的內部實現,集合在成員資格檢查和重複資料刪除方面更快,而列表和元組在索引方面速度較慢。

應用

  • Python 中最常用的資料格式是列表。它們對於以列表形式顯示數字很有用,例如資料集中的行或記錄中的行。

  • 向量的元素和點的座標是能夠使用元組表示的固定連結值的兩個示例。

  • 當您需要儲存各種新特徵或執行特定任務(如關聯、收斂和區分)時,集合很有用。

結論

在本教程中,我們討論了 Python 中列表、元組和集合之間的區別。記錄和集合是可變的,這意味著您可以在其中新增、刪除或修改元件,而元組是不可變的,這意味著在定義它們時,您無法新增、刪除或調整其中的元件。集合不保持元素的順序,但列表和元組保持。列表和元組可以包含重複元素,而集合僅允許唯一元素。最後但並非最不重要的一點是,與列表和元組相比,集合的索引和成員資格檢查需要更長的時間。根據您的需求,您可以選擇合適的資訊設計,使您的程式碼更有效和適應性更強。

更新於: 2023 年 4 月 18 日

2K+ 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告