Python 中的 4 種內置數據結構:字典、列表、集合、元組

已發表: 2020-03-24

在本文中,我們將重點關注Python 中的數據結構,並幫助您清楚地理解該主題。 你會發現它們是什麼以及它們是如何運作的。 我們還分享了許多示例,以確保您對我們在這里分享的任何主題沒有任何疑問。

所以,事不宜遲,讓我們開始吧。

目錄

什麼是數據結構?

數據結構可讓您有效且高效地組織和管理數據。 它們增強了數據的可訪問性。 如果您有合適的數據結構,修改存儲的數據也變得非常簡單。 它們使您能夠組織和存儲數據,以便您以後可以對相同的數據執行操作,而不會遇到任何困難。

Python 有兩種類型的數據結構。 Python 隱式支持的數據結構是 Set、Dictionary、List 和 Tuple。 這些是 Python 的內置數據結構。

然後,您可以自己創建一些數據結構,以便更好地控制功能。 這些是用戶定義的數據結構,它們包括鍊錶、圖、樹、堆棧、隊列和哈希映射。 用戶定義的數據結構也可用於其他編程語言。

閱讀更多:R 中最常用的 6 種數據結構

Python 中的內置數據結構

Python 有多種內置數據結構。 這些集成的數據結構可幫助您快速輕鬆地解決編程問題。 正如我們前面提到的,Python 具有以下集成的數據結構:

  • 字典
  • 列表
  • 元組

讓我們詳細討論它們中的每一個:

1. 字典

我們使用字典來存儲鍵值對。 就像物理字典存儲一個單詞及其含義一樣,Python 中的字典存儲鍵值對。 術語是鍵,而​​與這些詞相關的各種含義是值。 使用該值,您可以訪問密鑰。

您可以創建帶有花括號的字典。 您也可以為此目的使用 dict() 函數。 這是一個例子:

my_dict = {} #空字典

打印(我的字典)

my_dict = {1: 'A', 2: 'B'} #dictionary with elements

打印(我的字典)

上述代碼的輸出:

{}

{1:'A',2:'B'}

您可以通過鍵更改字典的值。 您必須首先訪問鍵以更改值。 找到鍵後,您只需添加所需的鍵值對即可獲得所需的結果。

my_dict = {'第一':'A','第二':'B'}

打印(我的字典)

my_dict['Second'] = 'C++' #改變元素

打印(我的字典)

my_dict['Third'] = 'Ruby' #添加鍵值對

打印(我的字典)

上述代碼的輸出:

{'第一':'A','第二':'B'}

{'第一':'A','第二':'C'}

{'第一':'A','第二':'C','第三':'D'}

您可以使用 pop() 函數刪除字典中的值。 pop() 函數返回您已刪除的值。 您可以通過 popitem() 函數檢索鍵值對。 它返回該對的元組。 您也可以使用 clear() 函數清除整個字典。 這是示例:

my_dict = {'第一':'A','第二':'B'','第三':'C'}

a = my_dict.pop('Third') #pop 元素

打印('值:',一)

print('字典:', my_dict)

b = my_dict.popitem() #彈出鍵值對

print('鍵、值對:', b)

print('字典', my_dict)

my_dict.clear() #空字典

打印('n',my_dict)

上述代碼的輸出:

值:C

字典:{'First': 'A', 'Second': 'B'}

鍵、值對:('Second', 'B')

字典 {'First': 'A'}

{}

另請閱讀: Python 項目理念和主題

2. 列表

我們使用列表順序存儲數據。 列表的每個元素都有一個地址,也稱為索引。 列表的索引值從 0 到列表中的最後一個元素,其名稱為正索引。 同樣,當您從最後一個元素返回到第一個元素並從 -1 開始計數時,稱為負索引。

您可以使用方括號創建列表,並根據需要向其中添加元素。 如果您將括號留空,則列表將沒有任何元素,並且它也將是空的。 下面是一個列表示例:

my_list = [] #創建空列表

打印(我的列表)

my_list = [A, B, C, 'example', Z] #用數據創建列表

打印(我的列表)

上述代碼的輸出:

[]

[A, B, C, '例子', Z]

您可以使用 insert()、extent() 和 append() 函數將元素添加到列表中。 insert() 函數將那些傳遞給索引值的元素相加。 insert() 函數也會增加列表的大小。

使用 append() 函數,您可以將傳遞給它的所有元素添加為單個元素。 另一方面,extend() 函數可以一個一個地添加元素。

這是一個例子:

my_list = [A, B, C]

打印(我的列表)

my_list.append([555, 12]) #添加為單個元素

打印(我的列表)

my_list.extend([234, 'more_example']) #添加為不同的元素

打印(我的列表)

my_list.insert(1, 'insert_example') #添加元素 i

打印(我的列表)

上述代碼的輸出:

[A、B、C]

[A, B, C, [555, 12]]

[A, B, C, [555, 12], 234, 'more_example']

[A, 'insert_example', B, C, [555, 12], 234, 'more_example']

在使用列表時,您也會遇到需要刪除一些元素的情況。 您可以使用“del”關鍵字。 它是 Python 的內置關鍵字,不會返回任何內容。 如果要返回一個元素,則必須使用 pop() 函數並通過其值刪除元素,則必須使用 remove() 函數。 這是示例:

my_list = [A, B, C, '例子', Z, 10, 30]

del my_list[5] #刪除索引5處的元素

打印(我的列表)

my_list.remove('example') #刪除有值的元素

打印(我的列表)

a = my_list.pop(1) #從列表中彈出元素

print('彈出元素:',a,'剩餘列表:',my_list)

my_list.clear() #清空列表

打印(我的列表)

上述代碼的輸出:

[A, B, C, '例子', Z, 30]

[A、B、C、Z、30]

彈出元素:2 剩餘列表:[A、C、Z、30]

[]

您可以在 Python 中傳遞索引值並獲取所需的值。

my_list = [A, B, C, '例子', Z, 10, 30]

for element in my_list: #access 元素一個一個

打印(元素)

print(my_list) #訪問所有元素

print(my_list[3]) #訪問索引3元素

print(my_list[0:2]) #訪問從0到1的元素並排除2

print(my_list[::-1]) #反向訪問元素

上述代碼的輸出:

一種

C

例子

Z

10

30

[A, B, C, '例子', Z, 10, 30]

例子

[甲,乙]

[30, 10, Z, '例子', 3, 2, 1]

3. 套裝

唯一且無序的項目的集合稱為集合。 因此,如果由於某種原因重複數據,它只會在集合中出現一次。 Python 中的集合類似於您在數學中讀到的集合。 從它們的性質到它們的功能,你會發現它們之間有很多相似之處。

您可以通過使用花括號並傳遞其值來創建一個集合。 這是一個例子:

my_set = {A, B, C, D, E, E, E} #創建集合

打印(my_set)

上述代碼的輸出:

{A、B、C、D、E}

就像我們之前提到的,您可以在 Python 的集合中執行您在算術中執行的集合的所有功能。 使用 union() 函數,您可以組合存在於兩組中的數據。 intersection() 函數為您提供了上述兩個集合中存在的數據。

您有一個 difference() 函數,可讓您刪除兩個集合中的可用數據,並為您提供它們之間不常見的數據。 symmetric_difference() 函數為您提供這些集合中剩餘的數據。

my_set = {A, B, C, D}

my_set_2 = {C, D, E, F}

打印(my_set.union(my_set_2),'———-',my_set | my_set_2)

print(my_set.intersection(my_set_2), '———-', my_set & my_set_2)

print(my_set.difference(my_set_2), '———-', my_set – my_set_2)

print(my_set.symmetric_difference(my_set_2), '———-', my_set ^ my_set_2)

my_set.clear()

打印(my_set)

上述代碼的輸出:

{A, B, C, D, E, F} ———- {A, B, C, D, E, F}

{C, D} ———- {C, D}

{A, B} ———- {A, B}

{A, B, E, F} ———- {A, B, E, F}

放()

另請閱讀:印度的 Python 開發人員薪水

4. 元組

元組類似於列表,但是一旦在元組中輸入數據,除非它是可變的,否則無法更改它。 理解它們可能有點棘手,但不用擔心,我們的示例代碼可能會在這方面對您有所幫助。 您可以在 tuple() 函數的幫助下創建一個元組。

my_tuple = (A, B, C) #創建元組

打印(我的元組)

上述代碼的輸出:

(甲、乙、丙)

訪問元組中的值的方法與列表中的相同。

my_tuple2 = (A, B, C, 'Upgrad') #訪問元素

對於 my_tuple2 中的 x:

打印(x)

打印(my_tuple2)

打印(my_tuple2[0])

打印(my_tuple2[:])

上述代碼的輸出:

一種

C

升級

(A、B、C、“升級”)

一種

(A、B、C、“升級”)

結論

現在您一定已經熟悉了Python 中的各種數據結構 我們希望您發現這篇文章很有用。 數據結構在幫助您組織、管理和訪問數據方面發揮著重要作用。 有很多選項可供選擇,每個選項都有其特定的用途。

如果你想了解更多關於 Python 和數據結構的信息,你應該看看我們的課程。

如果您想了解 Python 以及有關數據科學的所有知識,請查看 IIIT-B 和 upGrad 的數據科學 PG 文憑,該文憑專為在職專業人士而設,提供 10 多個案例研究和項目、實用的實踐研討會、行業指導專家,與行業導師一對一,400 多個小時的學習和頂級公司的工作協助。

什麼時候使用字典數據類型?

字典可以定義為在 Python 中使用的有價值的數據類型,作為存儲在鍵和值對中的數據集合。 現在,字典的值可以是任何數據類型,但鍵必須是不可變的數據類型,如元組、整數或字符串。

當您希望在不遍歷整個數據集合的情況下立即找到一個值時,發現字典非常方便。 除此之外,當數據的順序不重要時,字典也非常有用。 當內存考慮不是一個重要因素時,首選字典數據類型,因為與列表和元組相比,它們往往佔用更多空間。

列表和元組有什麼區別?

列表和元組都是序列數據類型,可用於在 Python 中存儲數據集合。 它們之間最顯著的區別是列表是可變的,而元組是不可變的。 最重要的是,與列表相比,元組中迭代的含義要快得多。

如果您希望執行插入和刪除操作,那麼列表對您來說很容易。 同時,可以在元組中更好地訪問元素。 決定使用任何數據結構的另一個重要因素是內存。 在這裡,與元組相比,列表往往會消耗更多的內存。

集合與列表有何不同?

列表被認為是 Python 中最強大的工具,因為它們並不總是必須是同質的。 列表和集合都可以包含各種數據類型。 現在,列表可以包含重複元素,但集合永遠不能包含重複元素,它們會從集合中消失。

元素的順序在列表中保持不變,但集合永遠不能保持元素的順序。 由於列表佔用了大量計算空間,它們最終會花費大量時間。 另一方面,集合利用散列來執行查找,最終比列表快得多。