09.程式程式設計基礎3~組合資料型別

大牧莫邪發表於2017-05-17

接著上一章內容,繼基本資料型別之後,本章進行組合資料型別的講解

3.2. 組合資料型別

python中為了方便一部分相似資料的處理,提供了各種組合型別,常見的如列表、元組 python中的列表是可變序列,元組是不可變序列

3.2.1. 列表

列表的語法結構:通過一堆方括號包含起來的資料序列,可以存放重複資料 ```

name = ['張小凡', '碧瑤', '陸雪琪', '林驚羽']

因為列表本身也是物件,所以可以進行巢狀處理

user = [['張小凡', '鬼王宗'], ['碧瑤', '鬼王宗'], ['陸雪琪', '青雲門']]

列表資料的檢視,可以通過索引/下標進行檢視

> user
 [['張小凡', '鬼王宗'], ['碧瑤', '鬼王宗'], ['陸雪琪', '青雲門']]
> user[1]
['碧瑤', '鬼王宗']
> user[1][0]
'碧瑤'

列表中追加資料:append()

user.append(['金瓶兒', '合歡派']);
結果: [['張小凡', '鬼王宗'], ['碧瑤', '鬼王宗'], ['陸雪琪', '青雲門'], ['金瓶兒', '合歡派']]

列表中指定位置追加資料:insert()

user.insert(2, ['秦無炎', '萬毒門']);
結果:[['張小凡', '鬼王宗'], ['碧瑤', '鬼王宗'], ['秦無炎', '萬毒門'], ['陸雪琪', '青雲門'], ['金瓶兒', '合歡派']]

刪除列表末尾的元素:pop()

user.pop();
結果:[['張小凡', '鬼王宗'], ['碧瑤', '鬼王宗'], ['秦無炎', '萬毒門'], ['陸雪琪', '青雲門']]

刪除列表中指定位置的元素:pop(index)

user.pop(2);
結果:[['張小凡', '鬼王宗'], ['碧瑤', '鬼王宗'], ['陸雪琪', '青雲門']]

將列表中指定位置的資料進行替換,直接給對應的索引賦值

user[2] = ['鬼先生', '鬼王宗']
結果:[['張小凡', '鬼王宗'], ['碧瑤', '鬼王宗'], ['鬼先生', '鬼王宗']]

``` 至此,常見的列表操作就基本介紹結束了,後續更加細緻的操作手段和方式,在專案中需要進行深入的時候和熟練了。

3.2.2. 元組

元組在python中,其實是列表的一種特殊的形式,一旦宣告建立就不允許改變。 語法結構:使用一對圓括號包含起來的一組資料,可以存放重複資料 ```

season = ('春' , '夏' , '秋' , '冬')

定義並給元組進行賦值之後,就可以像列表一樣進行資料的檢視了

season
結果: ('春' , '夏' , '秋' , '冬')
season[1]
結果:'夏'

``` 由於元組的資料一旦定義就不可更改,在一定程度上提高了程式碼的安全性,所以在程式設計開發的過程中,對於一部分不需要更改的資料如果可以定義成元組的,就不要定義成列表了。

注意:元組中如果存放的是其他的內容可變的元素的話,一定要注意此時的元組中物件的資料是可變的。 如: ```

# 定義了一個元組,此時元組中出了存放字串,還存放了一個列表
tuple = ('張小凡', '林驚羽', ['陸雪琪', '青雲門'])
tuple[2][0] = '碧瑤'
tuple[2][1] = '鬼王宗'
tuple
結果:('張小凡', '林驚羽', ['碧瑤', '鬼王宗'])

``` 執行過程如下圖所示 元組中包含物件,修改物件資料的執行過程

3.2.3. 集合

python中,還提供了一種特殊的資料型別,集合Set,和列表類似,但是不能儲存相同的資料;注意:集合set中存放資料是不能重複的,並且是沒有存放順序的,也就是沒有下標的。

語法:使用一對大括號/花括號包含起來的一組資料 ```

h = {'集合元素'}
hreo = set(['將列表轉換成集合'])

heros = {'寒冰艾希', '皎月戴安娜', '鋼鐵波比', '雪人努努', '迷失納爾'};
heros
結果:{'寒冰艾希', '皎月戴安娜', '鋼鐵波比', '雪人努努', '迷失納爾'};
heros[3] # 錯誤,集合中沒有下標,是無序存放資料的

集合中增加資料:add()

heros.add('青鋼影卡密爾');
heros
結果:{'寒冰艾希', '皎月戴安娜', '鋼鐵波比', '雪人努努', '迷失納爾', '青鋼影卡密爾'};

集合中刪除資料:remove()

heros.remove("皎月戴安娜");
heros
結果:{'寒冰艾希', '鋼鐵波比', '雪人努努', '迷失納爾', '青鋼影卡密爾'};

```

3.2.4. 字典

為了方便資料在組合資料型別中的管理,python 還提供了一種特殊儲存資料的組合資料型別:字典。通過key-value鍵值對的形式來儲存資料,可以很方便的通過key來對value進行增刪改查的操作 語法結構: ```

# 定義一個字典,每一個資料都是成對出現的 key:value
heros = {"皎月女神":"戴安娜", "虛空遁地者":"雷克賽", "沙漠皇帝":"阿茲爾", "無雙劍姬":"菲奧娜"}
# 通過字典的名稱使用字典
heros
結果:{"皎月女神":"戴安娜", "虛空遁地者":"雷克賽", "沙漠皇帝":"阿茲爾", "無雙劍姬":"菲奧娜"}
# 通過字典中資料的key來獲取對應的value資料
heros['皎月女神']
結果:'戴安娜'

查詢字典中的資料,使用方括號或者get()函式

# 使用方括號的形式查詢資料
heros['皎月女神']
結果:'戴安娜'
# 使用get()函式查詢資料
heros.get('皎月女神')
結果:'戴安娜'

修改字典中指定的資料,通過給指定的key直接賦值就可以修改

heros['沙漠皇帝'] = '茲爾大帝'
heros.get('沙漠皇帝')
結果:'茲爾大帝'

刪除字典中的資料,通過刪除指定的key對應的資料即可刪除

heros.pop('沙漠皇帝')
heros
結果:{'皎月女神': '戴安娜', '虛空遁地者': '雷克賽', '無雙劍姬': '菲奧娜'}

```

以上四種資料型別的比較 元組Tuple是存放固定的資料 集合Set中的資料插入和遍歷的時間,隨資料增多而變慢 列表List中的資料插入和查詢的時間,隨資料的增多而變慢 字典Dict中的資料插入和查詢的速度非常快,不會因為資料太多而變慢

元組、集合和列表佔用記憶體較少,字典佔用記憶體較多,字典是一種通過佔用空間來換取操作速度的一種資料型別

4種組合資料型別部分的基本使用講解完成,下一章單獨講解變數和運算子的操作

相關文章