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

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

Graphs

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

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

字符串String

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

元組Tuples

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

列表Lists

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

字典Dictionary

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

這是一本字典可以派上用場(chǎng)的時(shí)候。 字典由鍵值對(duì)組成。

集合Sets

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