數據結構:通俗點說,就是儲存大量數據的容器。這里主要介紹Python的4種基本數據結構:列表、字典、元組、集合。
格式如下:
列表:list = [val1,val2,val3,val4],用中括號;
字典:dict = {key1:val1,key2:val2},大括號,且每個元素是帶有冒號的key與val的對應關系組;
元組:tuple = (val1,val2,val3,val4),小括號;
集合:set = {val1,val2,val3,val4},大括號。
1. 列表:
list = [val1,val2,val3,val4]
列表最顯著的特征是:
列表中每個元素都是可變的;
列表中的元素都是有序的,即每個元素都有一個位置;
列表可以容納Python中的任何對象。
接下來看下列表的增刪改查。
增:
1
2
3
|
1 list = [ 1 , 'dwd' , 3.6 ] 2 list .insert( 0 , 'Python' ) 3 print ( list ) |
用insert方法可以實現在列表中增加元素。insert方法需要寫明增加在哪個位置和增加的內容,新增元素的實際位置是在指定位置元素之前的位置;如果指定的位置不存在,默認會增加在列表末尾。
1
2
3
4
5
6
|
1 list = [ 1 , 'dwd' , 3.6 ] 2 list [ 0 : 0 ] = [ 9 ] 3 # 【0:0】是指在list中的第1個位置插入新元素 4 list [ 3 : 3 ] = [ 'a' ] 5 # 【3:3】是指在list中的第4個位置插入新元素 6 print ( list ) |
上面說到的這兩種方法都是添加單個元素,除了添加單個元素外,還可以添加多個元素,用extend方法來實現。
1
2
3
4
5
|
1 list_a = [ 1 , 'dwd' , 3.6 ] 2 list_b = [ 'Python' , 56 , 'game' ] 3 list_a.extend(list_b) 4 # extend方法用于在列表末尾一次性追加另一個列表中的多個值 5 print (list_a) |
刪:
1
2
3
|
1 list = [ 1 , 'dwd' , 3.6 ] 2 list .remove( 'dwd' ) 3 print ( list ) |
刪除列表中的元素除了用上面的remove方法來實現外,也可以用del關鍵字來聲明:
1
2
3
4
|
1 list = [ 1 , 'dwd' , 3.6 ] 2 del list[ 0 : 2 ] 3 # 【 0 : 2 】是刪除第 1 和第 2 個位置的元素 4 print(list) |
改:
1
2
3
4
|
1 list = [ 1 , 'dwd' , 3.6 ] 2 list [ 2 ] = 7 3 list [ 0 ] = 'start' 4 print ( list ) |
如果想要替換掉列表中的某個元素,可以直接給列表某位置的元素重新賦值,list[2]指list列表中的第3個元素。
查:
列表的索引與之前文章《Python入門_淺談字符串的分片與索引、字符串的方法》中提到的字符串的索引類似,同樣是分正反兩種索引方式,可以從前往后,也可以從后往前索引。比如:
1
2
3
4
5
6
7
8
9
|
list = [ 1 , 'dwd' , 3.6 ] print ( list [ 1 ]) # 打印第2個位置的元素 print ( list [ - 1 ]) # 打印倒數第一個位置的元素 print ( list [: 2 ]) # 打印第1和第2個元素 print ( list [ 1 :]) # 打印第2到最后一個的元素 |
但如果想查看某個元素的位置,就不適合用這種方式,程序會報錯。因為列表只接受用位置進行索引,不可以通過元素來查找位置。
2. 字典:
dict = {key1:val1,key2:val2}
編程世界中的很多概念都源自于生活,字典也是。這種數據結構如我們使用的字典一樣,通過“名稱—內容”來構建,在Python中每個元素是帶有冒號的key與val的對應關系組,習慣稱之為鍵值對。
字典的特征如下:
字典中的元素必須是鍵值對的形式;
鍵(key)不可以重復,而值(val)可以重復;
鍵不可變,無法修改;值可修改,可以是任何對象。
即使字典中有重復的鍵,打印出來時也只會出現一次。比如:
1
2
|
1 dict = { 'A' : 'art' , 'B' : 'big' , 'C' : 'cute' , 'C' : 'cute' } 2 print ( dict ) |
接下來看下字典的增刪改查。
增:
字典中沒有像列表那樣有一個現成的insert方法可以使用,但可以通過下面這種方式插入元素,元素默認會插入在最后一個位置。
1
2
3
|
1 dict = { 'A' : 'art' , 'B' : 'big' , 'C' : 'cute' } 2 dict [ 'D' ] = 'dictionary' 3 print ( dict ) |
上面講到在列表中增加多個元素時可以使用extend方法來實現,在字典中也有對應的update方法來實現添加多個元素。
1
2
3
|
1 dict = { 'A' : 'art' , 'B' : 'big' , 'C' : 'cute' } 2 dict .update({ 'D' : 'dictionary' , 'E' : 'exam' }) 3 print ( dict ) |
刪:
在字典中刪除某元素,也可以使用del關鍵字。
1
2
3
|
1 dict = { 'A' : 'art' , 'B' : 'big' , 'C' : 'cute' } 2 del dict [ 'B' ] 3 print ( dict ) |
需要注意的是,雖然字典是用大括號的,但在刪除時依然使用的是中括號。
改:
如果要修改字典里的元素,直接重新給鍵賦值即可。
1
2
3
|
1 dict = { 'A' : 'art' , 'B' : 'big' , 'C' : 'cute' } 2 dict [ 'B' ] = 'beyond' 3 print ( dict ) |
查:
在字典中進行索引時,和刪除一樣,用的是中括號,中括號中存放字典的鍵,也就是說對字典元素進行索引時是通過鍵來索引的。
1
2
3
|
1 dict = { 'A' : 'art' , 'B' : 'big' , 'C' : 'cute' } 2 dict [ 'B' ] 3 print ( dict [ 'B' ]) |
之前在文章《Python入門_淺談字符串的分片與索引、字符串的方法》中有提到過字符串的分片,在字典里,字符串是不可以進行分片的。
3. 元組
tuple = (val1,val2,val3,val4)
Python中的元組與列表類似,不同之處在于元組不可以修改,類似于穩固版的列表,因此在列表中可以使用的增刪改的方法在元組中是不可以使用的,但是可以對元組中的元素進行索引,和列表類似。
1
2
3
4
5
|
1 tup = ( 1 , 2 , 's' , 7 ) 2 print (tup[ 0 ]) 3 print (tup[ - 1 ]) 4 print (tup[ 1 :]) 5 print (tup[: - 2 ]) |
4. 集合
set = {val1,val2,val3,val4}
集合的概念有點接近于數學上的集合。每個集合中的元素是無序的、不重復的任何對象,我們可以通過集合去判斷數據的從屬關系,有時還可以通過集合把數據結構中重復的元素減掉。
集合不可以被切片也不能被索引,除了做集合運算之外,集合元素可以被添加和刪除。
1
2
3
4
5
6
7
|
set = { 7 , 1 , 8 , 3 , 4 , 5 , 3 } set .add( 0 ) # 新增元素0 set .discard( 7 ) # 刪除掉元素7 print ( set ) # 打印出的集合會從小到達排列,并去重 |
等后面如果用到集合時,再詳細展開集合的運算。
后續會介紹下數據結構的一些小技巧。
操作環境:Python版本,3.6;PyCharm版本,2016.2;電腦:Mac
以上這篇Python入門_淺談數據結構的4種基本類型就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。