數(shù)據(jù)結(jié)構(gòu)是組織數(shù)據(jù)的方式,以便能夠更好的存儲和獲取數(shù)據(jù)。數(shù)據(jù)結(jié)構(gòu)定義數(shù)據(jù)之間的關(guān)系和對這些數(shù)據(jù)的操作方式。數(shù)據(jù)結(jié)構(gòu)屏蔽了數(shù)據(jù)存儲和操作的細(xì)節(jié),讓程序員能更好的處理業(yè)務(wù)邏輯,同時擁有快速的數(shù)據(jù)存儲和獲取方式。

Python中常見的數(shù)據(jù)結(jié)構(gòu)可以統(tǒng)稱為容器。序列(如列表和元組)、映射(如字典)以及集合(set)是三類主要的容器。線性數(shù)據(jù)結(jié)構(gòu)分類:棧(stack)--*后出、 隊列(queue)-*先出、雙端隊列(deque)、鏈表(LinkedList)。 常見的數(shù)據(jù)類型又分為:數(shù)字、字符串、元組、列表、字典、集合。

Graphs

數(shù)學(xué)和計算機科學(xué)中的圖是由節(jié)點組成的網(wǎng)絡(luò),節(jié)點也稱為頂點,它們可以相互連接,也可以不相互連接。 連接兩個節(jié)點的線或路徑稱為邊。 如果邊緣具有特定的流動方向,那么它是有向圖,方向邊緣被稱為弧。 否則,如果未指定方向,則該圖形稱為無向圖。

這可能聽起來*理論化,當(dāng)你深入挖掘時會變得相當(dāng)復(fù)雜。 然而,圖形是數(shù)據(jù)科學(xué)中特別重要的概念,通常用于模擬現(xiàn)實生活中的問題。 社會網(wǎng)絡(luò),化學(xué)和生物學(xué)的分子研究,地圖,推薦系統(tǒng)都依賴于圖形和圖形理論原理。

字符串String

String是字母,單詞或其他字符的集合。 在Python中,您可以通過在一對單引號或雙引號中包含一系列字符來創(chuàng)建字符串。 例如:‘cake’,“cookie”等。您還可以對兩個或多個字符串應(yīng)用+操作來連接它們,就像下面的示例中一樣:

元組Tuples

元組是另一種標(biāo)準(zhǔn)序列數(shù)據(jù)類型。 元組和列表之間的區(qū)別在于元組是不可變的,這意味著一旦定義,您就無法刪除,添加或編輯其中的任何值。 這可能在您可能將控件傳遞給其他人但您不希望它們操縱集合中的數(shù)據(jù)但可能只是在數(shù)據(jù)副本中看到它們或單獨執(zhí)行操作的情況下有用。

列表Lists

Python中的列表用于存儲同類項的集合。 這些是可變的,這意味著您可以在不改變其身份的情況下更改其內(nèi)容。 您可以通過方括號[和]來識別列表,其中包含以逗號分隔的元素。 列表內(nèi)置于Python中:您無需單獨調(diào)用它們。

字典Dictionary

如果你想實現(xiàn)類似于電話簿的東西,字典是要使用的數(shù)據(jù)結(jié)構(gòu)。 您之前看到的所有數(shù)據(jù)結(jié)構(gòu)都不適用于電話簿。

這是一本字典可以派上用場的時候。 字典由鍵值對組成。

集合Sets

集合是*對象的集合。 這些對于創(chuàng)建僅在數(shù)據(jù)集中包含*值的列表很有用。 它是一個無序的集合,但是一個可變的集合。