Python 教學

阿毛本章節來說明字典(Dictionary)的作用,以實際Coding方式來呈現給各位讀者,

老實說這些基礎知識,我想了很久,因為其實阿毛一開始在學習,

就是直接看一整篇人家寫好的程式,再依樣畫葫蘆地去寫出類似的程式,然後再進階的去改變,

以Python 這麼多領域的程式語言來說,可以寫網頁,爬蟲,AI,GUI,資料庫連線...等等,

我也是擔心我寫出來的文章沒有辦法幫助到真正新手剛進入寫程式這塊領域,

所以還是要將基礎的東西寫出來給各位讀者們,其實我的這個範例,您不用全部都記起來,

您只要知道Python 原來使用這些函式可以達到什麼樣的目的即可,

跟著文章教學練習有印象知道有這個函式,當您真的用到的時候可以來阿毛部落格查詢或者Google。

 

#課程目錄

#1. Python 字典是什麼?

#2. Python 字典常用函式

#2.1 dict()函式

#3. Python set()函式

#練習題解答

#其他課程

 


 

#1. Python 字典是什麼?

首先了解到什麼式字典,字典的作用與清單類似,但是字典中的數值位置順序不重要,

每個數值在字典裡都會有關鍵的KEY(鑰匙),什麼是關鍵KEY?

就像是您在Google要查詢Python 教學,您就會在搜尋引擎打Python 教學,

而這個"Python 教學"就是關鍵Key。

而這個關鍵鑰匙指定之後就無法變動,但是字典的數值式可以變動的,

所以包含新增,刪除,修改均可以使用。

另外字典所使用的符號是{}大括號!

如下範例

a={}                                           # 利用字典符號 {} 來產生空字典
b=dict()                                       # 利用函式 dict() 來產生空字典

example = {                                  # 建立一個字典 example
    "A":"Apple",
    "B":"Box",
    "C":"Cat",
    "D":"Dog"}
print(example)

data ={                                        # 建立一個數字與字串混合的字典
    "number":12345,
    "string":'Iam a Good Man'}
print(data)

data1={                                        # 建立一個數字與字串混合的字典
    "number":12345,"string":'Iam a Good Man'}
print(data1)

data2 = {                                      # 建立一個數字與字串混合的字典,但 key 不一定為字元序列
    150:"150", "150":150}
print(data2)

image

練習題 : 用字典方式撰寫虛構人名以及居住地點,虛構人名為(Key),居住地點為相對應的資料(value)

#頁首


 

 

#2. Python 字典常用函式

#2.1 dict()函式

將清單,元組,轉換成字典!

如下範例

data = (("Name","小明"),        # 建立每個元素值都是元組資料的元組
        ("TEL","0987987987"),
        ("Address","亞利安星球"),
        ("Gender","可男可女"))
print(dict(data))                              # 利用函式 dict() 將二值序列的元組資料 data 轉換成為字典

data1 = [("Name","小明"),       # 建立每個元素值都是元組資料的清單
         ("TEL","0987987987"),
         ("Address","亞利安星球"),
         ("Gender","可男可女")]
print(dict(data1))                             # 利用函式 dict() 將二值序列的清單資料 data1 轉換成為字典

data2 = [["Name","小明"],       # 建立每個元素值都是清單資料的清單
         ["TEL","0987987987"],
         ["Address","亞利安星球"],
         ["Gender","可男可女"]]
print(dict(data2))                             # 利用函式 dict() 將二值序列的清單資料 data2 轉換成為字典

image

print(dict(('ab','cd','ef')))                  # 元組資料中的元素值,若是屬於兩個字元的字串,則可以透過函式 dict() 轉換成字典
print(dict(['ab','cd','ef']))                  # 清單資料中的元素值,若是屬於兩個字元的字串,也可以透過函式 dict() 轉換成字典
dicdata = {                                  # 建立一個字典 dicdata
    "Name":"小明",
    "TEL":"0987987987",
    "Address":"亞利安星球",
    "Gender":"男"}
print(dicdata)
dicdata["user ID"]="U00111000"            # 輸入原字典中沒有的Key,則代表新增資料
print(dicdata)
dicdata["user ID"]="U00112000"            # 輸入原字典中已有的Key,則代表更新資料
print(dicdata)
animal={"animal1":"dog", "animal2":"cat",      # Key若重複,後面的資料會取代前面
        "number1":123, "number2":456, "animal2":"frog", "number2":789}
print(animal)

image

dicdata = {                                  # 建立一個字典 dicdata
    "Name":"小明",
    "TEL":"0987987987",
    "Address":"亞利安星球",
    "Gender":"男"}
print(dicdata)
new_dicdata={"meal":"eat out", "year":18}    # 建立另一個字典 new_dicdata
print(new_dicdata)
dicdata.update(new_dicdata)                # 利用方法updte()將 new_dicdata 的元素值複製至dicdata
print(dicdata)                               # new_dicdata 的元素值會新增至 dicdata 內
dicdata = {                                  # 還原原字典
    "Name":"小明",
    "TEL":"0987987987",
    "Address":"亞利安星球",
    "Gender":"男"}
new_data={ "meal":"eat out",                   # 建立另一個字典 new_data
           "dicdata system":"test"}
dicdata.update(new_data)                     # 利用方法 updte() 將 new_data 的元素值複製至 dicdata
print(dicdata)                               # new_data 的Key若與 dicdata 相同,則 dicdata 的資料會被取代

image

dicdata = {                                  # 建立一個字典 dicdata
    "Name":"小明",
    "TEL":"0987987987",
    "Address":"亞利安星球",
    "Gender":"男"}
print(dicdata)
print(list(dicdata.keys()))                  # 利用方法 list() 將字典中所有的Key轉換成清單
print(dicdata.keys())                        # 利用方法 keys() 可以查看字典中所有的Key
print(tuple(dicdata.keys()))                 # 利用方法 tuple() 將字典中所有的Key轉換成元組
print(tuple(dicdata.items()))                # 利用方法 items() 將字典中所有的資料(包含Key)轉換成元組
print(list(dicdata.items()))                 # 利用方法 items() 將字典中所有的資料(包含Key)轉換成清單
print(list(dicdata.values()))                # 利用方法 values() 將字典中所有的資料(不包含Key)轉換成清單
print(tuple(dicdata.values()))               # 利用方法 values() 將字典中所有的資料(不包含Key)轉換成元組

image

 

#頁首


 

#3. Python set()函式

集合(Sets)的形成就如同字典一樣,也使用大括號{},

但與字典不同的地方是,集合僅有Key而沒有相對應資料,

如果需要知道某些事項存在而不需要知道其相關訊息時,可以使用集合,

要了解Key,且要同時了解相關訊息時,就必須使用字典,

但無論是對集合或是字典而言,Key都是唯一,不會重複。

如下範例

data = set()                                   # 利用函式 set() 建立一個空集合
print(data)
data1={ 0, '2', '4', 6, 8}                     # 建立一個數字與字串混合的集合
data2={ '9', 7, 5, 3, '1'}                     # 建立另一個數字與字串混合的集合
print(data2)
print(set('Amobendong'))              # 藉由函式 set() 的使用,將字串轉換成集合
print(set((4, 5, 'Amo', 6, 'of')))        # 藉由函式 set() 的使用,將清單資料轉換成集合
print(set([4, 5, 'Amo', 6, 'of']))        # 藉由函式 set() 的使用,將元組資料轉換成集合
set({'Name':'小明',                            # 藉由函式 set() 的使用,將字典轉換成集合
     18:'年紀',
     "住址":'smoewhere',
     '學號':54088})

image

 

data1_set={ 1, 2, 3, 4, 5, 6}                 # 建立一個集合
data2_set={ 7, 8, 9, 10, 11,  12}                 # 建立另一個集合
print(data1_set & data2_set)                   # 以上兩個集合進行交集運算,亦即兩個集合都有的元素值取出
print(data1_set^data2_set)                     # 兩個集合進行互斥運算,亦即將兩個集合中所有相異的元素值列出
print(data1_set | data2_set)                   # 兩個集合進行聯集運算,亦即將兩個集合的所有元素值取出,重覆的元素值僅列一個
print(data2_set-data1_set)                     # 兩個集合進行差集運算,但集合順序不同則運算結果亦不同
print(data1_set-data2_set)                     # 兩個集合進行差集運算,亦即將前面集合在後面集合所出現之前面集合的元素值刪除

image

data1_set={ 0, 1, 3, 5, 7, 9}                 # 建立三個集合
data2_set={ 2, 3, 4, 5, 6, 7}                 
data3_set={ 1, 3, 5}                           
print(data3_set <= data1_set)                  # 測試 data3_set 是否為 data1_set 的子集合
print(data1_set <= data2_set)                  # 測試 data1_set 是否為 data2_set 的子集合
print(data3_set <= data3_set)                  # 測試 data3_set 是否為 data3_set 的子集合,包含本身
print(data3_set < data3_set)                   # 測試 data3_set 是否為 data3_set 的子集合,不包含本身
print(data1_set >= data3_set)                  # 測試 data3_set 是否為 data1_set 的子集合
print(data2_set >= data1_set)                  # 測試 data1_set 是否為 data2_set 的子集合
print(data3_set >= data3_set)                  # 測試 data3_set 是否為 data3_set 的子集合,包含本身
print(data3_set > data3_set)                   # 測試 data3_set 是否為 data3_set 的子集合,不包含本身

image

 

#頁首


 

#練習題解答

練習題 : 用字典方式撰寫虛構人名以及居住地點,虛構人名為(Key),居住地點為相對應的資料(value)

users = {
    "阿貓" : "台北",
    "阿狗" : "宜蘭",
    "阿花" : "台南",
    "東東" : "新竹"
}
print(users)

image

#頁首


本章節就先分享到這裡囉~

相信到了這章節,各位對於Python的基礎型態以及函式的使用已經有個大致上的印象囉!

如果真的都要照著做,相信原本是新手的你,已經可以大聲跟人說,我會寫程式!!

如果覺得阿毛的文章有幫助到您,可以幫阿毛點個讚,或者留個言幫阿毛加油或者留下您的意見喔!

謝謝各位讀者的觀看!

下一章節,將要介紹Python的控制結構 迴圈與IF ELSE 判斷式的範例唷!

Step 6.簡單 Python 教學 免費學-Python 控制結構 if else與for迴圈

 

 

#其他課程

Step 1.(安裝Python)連英文都看不懂的人如何簡單學Python呢?

Step 2.簡單 Python 教學 免費學-JupyterNotebook 使用

Step 3.簡單 Python 教學 免費學-算術運算子 教學

Step 4.簡單 Python 教學 免費學-Python 資料型態

 

回阿毛便當首頁

arrow
arrow
    創作者介紹
    創作者 AmoBendong 的頭像
    AmoBendong

    阿毛便當-美食與生活點滴

    AmoBendong 發表在 痞客邦 留言(0) 人氣()