【Python自學】Python集合類型總整理(List、Sets、Tuple、Dictionary)

Python自學_集合類型(ListSetsTupleDictionary

 

List(列表)可變、可重複、有順序

特性:有順序(indexed)、可修改(mutable)、允許重複值

建立方式-中括號

my_list = ["籃球","桌球","網球"]

 

List大概是集合裡面最彈性的,畢竟列表(清單)就只是"列出來。常用的地方也很直觀,就是購物車(購物清單)」

 

常用操作:

用位置來呼叫,看裡面是什麼?

my_list = ["籃球","桌球","網球"]

print(my_list[2])

 

#網球

 

for迴圈走訪list列表裡面的元素

my_list = ["籃球","桌球","網球","籃球"]

for item in my_list:

    print(item)

 

#籃球

桌球

網球

籃球

 

append():將新的字元加在最後

my_list = ["籃球","桌球","網球"]

my_list.append(1)

print(my_list)

 

['籃球', '桌球', '網球', 1]

(補充):list列表裡面可以放不同資料型別,該例中的"籃球","桌球","網球,都是字串,而我append(1)的是整數。

 

remove():移除第一個符合的值

my_list = ["籃球","桌球","網球","籃球"]

my_list.remove("籃球")

print(my_list)

 

#['桌球', '網球', '籃球']

(備註)remove()只移除第一個。我在list裡宣告兩個"籃球"(可重複性),但remove()只移除第一個。

 

index():搜尋第一個符合的值,並回傳位置

my_list = ["籃球","桌球","網球","籃球"]

print(my_list.index("籃球"))

print(my_list.index("桌球"))

 

#0

1

【備註】可以發現第二個籃球的位置(3)並沒有被回傳,只回傳第一個籃球的位置(1

 

 

Tuple(元組)不可變、有順序、可重複

特性:有順序、不可修改(immutable)、允許重複

建立方式-小括號

my_tuple = (1, 2, 3, "阿元")

 

Tuple的中文翻譯是"元組",我覺得翻得很好,因為"元"是一開始的、原始的,這就象徵著"不可變"的特性。」

 

常用操作

count():數量

my_tuple = (5,8,10,5,5)

print(my_tuple.count(5))

 

#3

總共有35

index():位置(指搜尋第一個)

my_tuple = (5,8,10,5,5)

print(my_tuple.count(5))

 

#0

 

 

(注意)tuple幾乎沒有修改方法(因為不可變)

(用途)不希望被改動的資料(例如:固定設定值、經緯度)

 

Set(集合)無順序、不可重複、可變

特性:無順序(不能用 index)、自動去重複、可修改(mutable

建立方式-關鍵是大括號

舉例來說:

my_set = {1, 2, 3, 3}

# 自動變成 {1, 2, 3}

 

常用操作:

add():加入

my_set = {1, 2, 3, 3}

my_set.add(4)

print(my_set)

# 變成 {1, 2, 3,4}

 

remove():移除

my_set = {1, 2, 3}

my_set.remove(3)

print(my_set)

#{1, 2}

 

檢測某元素有沒有在set裡面

my_set = {1,2,3,4,5}

 

if 1 in my_set:

    print("1有在裡面")

 

if 6 in my_set:

    print("6有在裡面")

else:

    print("6沒有在裡面")

 

#1有在裡面

6沒有在裡面

 

 

Dictionary(字典)鍵值對、可變、無順序(Python 3.7+有插入順序)

特性:由 鍵(key 值(value) 組成

(重點)key 不能重複;value 可以重複

可修改(mutable

建立方式-大括號,且一個key對一個valuekey:value

my_dict = {

    "name": "阿元",

    "age": 36,

    "job": "藥師"

}

 

【常用操作】

dict["key"]:取值。(如果沒有key的話,此種取值方式會噴錯,因此只適用確定有該值的情況)

my_dict = {

    "name": "阿元",

    "age": 26,

    "job": "藥師"

}            #設定字典

print(my_dict["name"])

print(my_dict["age"])

print(my_dict["job"])

#一一的把值給取出來

 

程式執行:

阿元

26

藥師

 

dict.get("key"):安全取值(如果沒有key的話,回傳none。與上一個取值方式的結果截然不同)

my_dict = {

    "name": "阿元",

    "age": 26,

    "job": "藥師"

}            #設定字典

 

print(my_dict.get("name"))

 

程式執行結果:阿元

 

my_dict.get("A",0):這種取值方式是指假如字典裡面沒有”A",那就建立一個A並回傳0;假如字典本來就有A,那就把Akey)的值(Value)取出來。

 

my_dict = {

    "name": "阿元",

    "age": 26,

    "job": "藥師"

}            #設定字典

 

my_dict["experience"]=my_dict.get("experience",0)

print(my_dict)             #原本沒有experience,所以建立一個experience並回傳0

my_dict["age"]=my_dict.get("age",18)

print(my_dict)       #原本就有age,所以取出他的值(value),也就是26(不是18


程式執行結果:

{'name': '阿元', 'age': 26, 'job': '藥師', 'experience': 0}

{'name': '阿元', 'age': 26, 'job': '藥師', 'experience': 0}


更新鍵值對-update()

my_dict = {

    "name": "阿元",

    "age": 26,

    "job": "藥師"

}            #設定字典

 

my_dict.update({"interest":"coding"})

print(my_dict)

 

程式執行結果:

{'name': '阿元', 'age': 26, 'job': '藥師', 'interest': 'coding'}

 

刪除鍵值對-pop()

my_dict = {

    "name": "阿元",

    "age": 26,

    "job": "藥師"

}            #設定字典

my_dict.pop("name")

print(my_dict)

 

程式執行結果:{'age': 26, 'job': '藥師'}

 

取出所有鍵值對-items()

my_dict = {

    "name": "阿元",

    "age": 26,

    "job": "藥師"

}            #設定字典

 

print(my_dict.items())

 

程式執行的結果:dict_items([('name', '阿元'), ('age', 26), ('job', '藥師')])

 

取出鍵值對裡所有的值-values()

my_dict = {

    "name": "阿元",

    "age": 26,

    "job": "藥師"

}            #設定字典

 

print(my_dict.values())

程式執行結果:dict_values(['阿元', 26, '藥師'])

 

 

Dictionary用途:結構化資料(如 JSON、設定檔、商品資料)

Dictionary字典,我對這個集合的理解與記憶其實也非常直觀!想想看,現實中的字典就是一個單字對一個解釋,也就是所謂的keyvalue。而一個字典裡,同一個單字只會出現一次,但是不同單字卻可能有同一個解釋(相似詞),所以key不可重複,但是value可以重複。」

 

四者特性快速比較表

List:有順序、可改、可重複

Tuple:有順序、不能改、可重複

Set:無順序、不可重複、可改

Dictkey-value 組合key 不重複、可改

 

 

 

 

 

 

留言

這個網誌中的熱門文章

常見的化痰粉愛克痰(小鳥粉)怎麼吃?|化痰粉成人及小孩的使用劑量|紅色與藍色比較

麻將教學懶人包|從規則到牌理的完整觀念整理(附實戰心得)

麻將新手必看!不知道聽什麼牌怎麼辦?超多種實戰聽牌範例,教你怎麼判斷胡牌機會