Python 基礎教學

1. Python 環境設定 2. Python 基本變數 3. Python 流程控制 4. Python 模組與套件概念 5. Pandas 資料處理 6. Matplotlib 繪圖 7. Jieba 切詞
課程介紹 & 程式碼

基本變數-字典Dict

字典(Dict)格式是由多個Key 與Value 所組成的資料型態,而Key 與Value中間是由「:」符號所區隔,並且每筆資料都是由「,」來切割,資料的最外層則是用大括號「{}」把整個字典(Dict)的資料包起來。組成的樣子可以參考以下範例:

{
    'key1': 'value1',
    'key2': 'value2'
}

1. 字典Dict格式的優點

當您了解了以下的字典Dict格式優點後,在之後的資料處理中,如果碰到以下的需求,就知道要使用Dict的格式來呈現了:

  1. 資料是啥一目了然。
  2. 無限的階層延伸,多複雜的資料結構都能呈現。
  3. 支援所有您所知的Python型態,所有型態都能包進Dict。
  4. 資料項目不一定要有順序性,這點也是與list最大的差別。

2. Dict構造解說

上述的解釋可能有點艱澀難懂,這裡提供一個實際的案例:

{
    '縣市名稱': '台北',
    '人口數(萬)': 200,
    '歷年市長': ['獎萬安','柯文哲','馬英九'],
    '行政區': {
        '中山區郵遞區號': 104,
        '中正區郵遞區號': 100
    }
}

1. 字典+字串

在範例中可以看到,最基本的Key 與Value本身的型態都是字串,因為都被引號給包起來,這也是最基本的呈現方式。

{
    '縣市名稱': '台北',
}

2. 字典+數字

字典也可以記錄int或者float的value資料,在範例中可以看到「200」並沒有被引號包起來,是以int的方式呈現。

{
    '人口數(萬)': 200,
}

另外除了value資料可以是數字外,key的部分也可以是數字,如以下範例:

{
    1: '這是範例'
}

3. 字典+陣列

在範例中可以看到,Value的部分是以中括號進行包覆,由此可知,Dict格式內是可以包覆list格式的。相反的,其實要用list 格式包覆Dict 資料也是可以喔!

{
    '歷年市長': ['獎萬安','柯文哲','馬英九'],
}

4. 雙重字典

Dict當中的value也可以是Dict,也就是用Dict資料來包覆Dict資料。在本次範例中,使用兩層的Dict進行包覆,這個感覺有沒有很像俄羅斯娃娃!

{
    '行政區': {
        '中山區郵遞區號': 104,
        '中正區郵遞區號': 100
    }
}

3. 如何取得Value

取得Value的方式非常簡單,以下為取得Dict資料的格式:

變數名稱[Key名稱]

已剛剛的範例來說,將該範例資料儲存到a這個變數中:

a = {
        '縣市名稱': '台北',
        '人口數(萬)': 200,
        '歷年市長': ['獎萬安','柯文哲','馬英九'],
        '行政區': {
            '中山區郵遞區號': 104,
            '中正區郵遞區號': 100
        }
    }

若想要抓到「台北」,則python要這樣寫,記住「縣市名稱」型態為字串需要加上引號,且四個字都不能打錯(建議都用複製的): 

a['縣市名稱']

產出結果:

'台北'

若要取得雙層Dict中的資料呢?則python要這樣寫:

a['行政區']['中山區郵遞區號']

產出結果:

104

如果key有輸入錯誤的話,則就會出現以下的錯誤: 

KeyError: '你打錯的key會顯示在這裡'

作者:楊超霆 行銷搬進大程式 創辦人

©2023 行銷搬進大程式 Marketing Live in Code