Python 中的數據結構類型:列表、元組、集合和字典

已發表: 2020-12-30

Python 一直是所有數據科學愛好者最喜歡的語言。 通用性和易於理解的方法可幫助開發人員更多地專注於了解數據趨勢並獲得有意義的見解,而不是花時間修復一個小的分號錯誤或關閉開銷括號。 Python 作為初學者中最流行的語言,很快就適應了,因此掌握這門語言變得很重要。

數據結構是任何編程語言中的一個基本概念。 它根據數據類型定義瞭如何以最佳方式從內存中存儲和檢索變量和數據。 它還定義了變量之間的關係,這有助於確定應該對它們執行的操作和功能。 讓我們了解 Python 是如何管理數據的。

目錄

Python中的數據結構類型

1. 列表

這是 Python 編程中最簡單、最常用的數據結構。 顧名思義,它是要存儲的項目的集合。 存儲的項目可以是任何類型的數字、字符串、布爾值、對像等,這使得它是異構的。 這意味著一個列表可以包含任何類型的數據,我們可以使用任何類型的循環來迭代這個列表。

存儲的元素通常與定義列表中位置的索引相關聯。 索引編號從零開始。 列表是可變的,這意味著列表中的元素即使在定義之後也可以添加、刪除或更改。 這種數據結構就像其他語言中的數組一樣,通常是同構的,這意味著數組中只能存儲一種類型的數據。 Lists的一些基本操作如下:

  • 要在 Python 中聲明一個列表,請將其放在方括號中:

sample_list = ['upGrad', '1', 2]

  • 初始化一個空列表:

樣本列表 = 列表()

  • 將元素添加到列表中:

sample_list.append('new_element')

  • 從列表中刪除元素:

sample_list.remove(<element name>) 刪除特定元素

del sample_list[<element index num>] 刪除該索引處的元素

sample_list.pop(<element index num>) 刪除該索引的元素並返回該刪除的元素

  • 要更改任何索引處的元素:

sample_list[<任何索引>] = 新項目

  • 切片:這是一個重要功能,可以在特定情況下過濾掉列表中的項目。 考慮到您只需要列表中特定範圍的值,那麼您可以通過以下方式簡單地執行此操作:

sample_list[start: stop: step] 其中 step 定義元素之間的間隙,默認為 1。

了解:如何創建完美的決策樹

2. 元組

這是另一種順序存儲數據的數據結構,這意味著添加的數據會像列表一樣保持有序。 按照同樣的思路,Tuple 也可以存儲異構數據,並且索引保持不變。

兩者的主要區別在於元組中存儲的元素是不可變的,定義後無法更改。 這意味著您不能添加新元素、更改現有項目或從元組中刪除元素。 元素只能通過索引或解包從中讀取,無需替換。

這使得元組在創建方面比列表快。 元組存儲在單個內存塊中,但列表需要兩個塊,一個是固定大小的,另一個是可變大小的用於存儲數據。 當用戶確定要存儲的元素不需要任何進一步修改時,應該更喜歡元組而不是列表。 使用元組時需要考慮的一些事項:

  • 初始化一個空元組:

樣本元組 = 元組()

  • 要聲明一個元組,請將項目括在圓括號中:

sample_tuple = ('upGrad', 'Python', 'ML', 23432)

  • 要訪問元組的元素:

樣本元組[<index_num>]

3. 套裝

在數學中,集合是定義明確的獨特元素的集合,這些元素可能彼此相關,也可能不相關。 在 tuple 和 list 中,可以存儲許多重複的元素而不會失敗,但是 set 數據結構只接受唯一的項目。

集合的元素以無序的方式存儲,這意味著項目隨機存儲在集合中,並且不支持明確的位置或索引,集合中也不允許切片。 集合本身是可變的,但元素必須是不可變的,因為集合的工作方式是散列這些元素,在這個過程中,只有不可變的元素可以散列。

可以從集合中添加或刪除元素,但不能更改,因為沒有索引的概念,因此可以更改元素。 就像在數學中一樣,這裡也可以執行所有集合操作,例如並集、交集、差分、不相交。 讓我們看看如何實現它:

  • 初始化一個空集:

樣本集 = 集()

  • 向集合中添加元素:

sample_set.add(item) 這將單個項目添加到集合中

sample_set.update(items) 這可以通過列表、元組或其他集合添加多個項目

  • 從集合中移除元素:

sample_set.discard(item) 如果元素不存在,則刪除元素而不發出警告

sample_set.remove(item) 如果要刪除的元素不存在,則引發錯誤。

  • 集合操作(​​假設初始化了兩個集合:A 和 B):

一個 | B 或 A.union(B):聯合操作

A & B 或 A.intersection(B):相交操作

A – B 或 A.difference(B):兩組的差異

A ^ B 或 A.symmetric_difference(B) :集合的對稱差

查看: Python 中的數據框

4.字典

這是 Python 中最有用的數據結構,它允許數據元素以鍵值對的方式存儲。 鍵必須是不可變值,值可以是可變項。 這個概念就像實際字典的樣子,我們將單詞作為鍵,將它們的含義作為值。 字典以無序的方式存儲這些對,因此在這個數據結構中沒有索引的概念。 與此相關的一些重要事項:

  • 初始化一個空字典:

sample_dict = dict()

  • 向字典中添加元素:

sample_dict[key] = 值

另一種方法是 sample_dict = {key: value}

如果你打印這個字典,輸出將是: {'key1': value, 'key2': value ... }

  • 獲取字典的鍵和值:

sample_dict.keys():返回鍵列表

sample_dict.values():返回值列表

sample_dict.items():返回鍵值對的視圖對像作為列表中的元組

學習世界頂尖大學的數據科學課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

掌握Python中數據結構的基礎知識很重要。 在數據行業,不同的數據結構可以幫助更好地解決底層算法。 它使開發人員更加了解最佳編碼實踐以有效地獲得結果。 每個數據結構的使用都高度基於情境,需要嚴格的實踐。

數據結構的重要性是什麼?

數據結構是任何編程語言的基礎支柱之一。 它們定義了數據將如何在內存中存儲和操作。 無論我們談論哪種編程語言,數據結構的概念都是一樣的。

最常見的數據結構包括數組、列表、堆棧、隊列、樹、哈希圖和圖。 其中一些是內置的,而另一些則需要用戶借助預定義的數據結構來實現。

我怎樣才能對數據結構有很強的把握?

任何數據結構的實現和工作的基本概念應該是您應該採取的第一步。 在熟悉了理論概念和工作之後,您可以從編碼部分開始。

您應該始終研究您正在處理的任何算法或數據結構的時間複雜度和空間複雜度。 這將使您對概念有一個正確的了解,並且您將能夠解決任何需要該特定數據結構的問題。

什麼時候首選 Python 列表來存儲數據?

列表可用於存儲具有不同數據類型的各種值,並且可以僅通過它們各自的索引來訪問。 當您需要對元素執行數學運算時,可以使用列表,因為它允許您直接對元素進行數學運算。

由於列表可以調整大小,因此當您不確定要存儲的元素數量時,可以使用它來存儲數據。