數據結構(data structures)
只是一種結構,能夠將一些數據聚合在一起,是用來存儲一系列相關數據的集合。
python中有四種內置的數據結構——列表(list)、元組(tuple)、字典(dictionary)、集合(set)。
列表(list)
是一種用于保存一系列有序項目的集合,可以利用列表保存一串項目的序列。項目的列表應該用方括號括起來。一旦創建了一張列表,你可以添加、移除或搜索列表中的項目,因此說列表是一種可變的(mutable)數據類型,即這種類型是可以被改變的。
元組(tuple)
元組用于將多個對象保存到一。你可將他們近似地看作列表,但是元組不能提供列表 類能夠提供給你的廣泛的功能。元組的一大特征類似于字符串,它們是不可變的,也就是說你不能編輯或更改元組。
元組是通過特別指定項目來定義的,在指定項目時,你可以給它們加上括號,并在括號內部用逗號進行分隔。
元組通常用于保證某一語句或某一用戶定義的函數可以安全地采用一組數值,意即元組的數值不會改變。
字典(dictionary)
字典就像一本地址簿,如果你知道國他的姓名,你就可以在這里找到其地址或是能夠聯系上對方的更多詳細信息,換言之,我們將鍵值(keys)(即姓名)與值(values)(即地址等 詳細信息)聯系到一起。注意:鍵值必須是唯一的。
另外要注意的是你只能使用不可變的對象(如字符串)作為字典的鍵值,但是你可以使用可變或不可變的對象作為字典中的值。
在字典中,你可以通過使用符號構成d={key1:value1,key2:value2}這樣的形式,來成對地指定鍵值與值。成對的鍵值與值之間使用冒號分隔,而每一對鍵值與值則使用逗號進行區分,它們全都由一對花括號括起。
另外需要注意,字典中的成對的銀值-值配對不會以任何方式進行排序。如果你希望它們安排一個特別的次序,只能在使用它們之前自行進行排序。
序列(sequence)
列表、元組和字符串可以看作序列的某種表現形式。
序列的主要功能是資格測試(membership test)(也就是in與not in表達式)和索引操作(indexing operations),它們能夠允許我們直接獲取序列中的特定項目。
集合(set)
集合是簡單對象的無序集合(collection).當集合中的項目存在與否比起次序或其出現次數更加重要時,我們就會使用集合。
通過集合,你可以測試某些對象的資格或情況,槍查窮鄉它們是否是其它集合的子集,找到兩個集合的交集,等等。
以下是上面說到的各種數據結構的簡單例子:
1.列表:
程序:
運行:
在這里,列表使用[]括起來,里邊是字符串,每個字符串之間使用逗號,列表可以使用.sort進行自動排序,也可以使用del刪除一個列表中的對象,leg(列表名稱)可以計算列表長度,.append(字符串)可以增添對象。
2.元組
程序:
運行:
元組中,使用小括號,里面是字符串,中間用逗號隔開。元組同樣可以增加對象,增加的對象也可以是元組,同樣使用len()計算 元組中的對象個數,如果元組中存在一個子元組,那這個子元組可以看成一個對象整體。注意:不可以對元組進行排序,即不能使用.sort()語句。
如果一個元組是空元組,則直接使用zoo=()即可,但是若元組只有一個元素,則需要在第一個對象后加逗號隔開,如zoo=(2,)否則會被當成一個數字2來看待,而一個元素的序列就不存在這個問題。
3.字典
程序:
運行:
字典是用大括號表示,里邊每一個元素之間用逗號隔開,每個元素包含鍵值與值,分別用字符串表示,用逗號(:)隔開。
可以使用del語句刪除某個鍵值-值配對。
可以通過字典的item方法來訪問字典中每一對鍵值-值配對信息,這一操作將返回一份包含元組的列表,每一元組中則包含了一對相應的信息——鍵值以及其相應的值。
如果候增加一堆新的鍵值-值配對,可以簡單地通過使用索引去處符訪問一個鍵值并為其分配與之相應的值。
可以使用in 運算符來檢某對鍵值-值配對是否存在。
總結:學習了數據結構中的序列[],元組()以及字典{:,}
明天學習集合。