iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 8
1
AI & Data

30天 python 學習心得分享系列 第 8

Day8- 容器資料型態Tuple、Dict、Set介紹

今天介紹剩餘的容器,容器中我最常使用到的除了List外Dict也是其中之一,就讓我們進入今天的主題吧.


第二種碗 Tuple

Tuple也稱作元組,tuple其實與List很像,操作方式也一樣(可參照上篇文章),唯一不同的是無法針對tuple進行修改,所以涉及到變更陣列的元素方法無法針對tuple使用.

宣告

tuple可用小括號()包覆內用逗號,分隔,也可不加()但取用時依舊要使用[]

a = 1, 4, '123'
b = ('it', 'hello world')

print(type(a))
print(a)
print(type(b))
print(b)

#輸出:
#<class 'tuple'>
#(1, 4, '123')
#<class 'tuple'>
#('it', 'hello world')

這是就有一個問題了,tuple基本上跟List一樣何不直接使用List就好??

其實tuple還是有它的好處存在的,簡單來說tuple會存在的原因主要是執行速度上的考量,因無法修改結構較為間單,所以執行效能會比較好,另一個好處是能在內存放你不希望被異動的資料較為安全,以上就是Tuple的介紹嘍.

第三種碗 Dict

Dict字典其實與ASP.NET的Dictionary一樣,利用KeyValue方式儲存資料,取用資料時可透過key取得想對應的value.

基本用法

  • 宣告
    宣告方式如下範例,使用中括號{} 將元素包起來並用:區分Key及Value再以,分隔,Key的值可為intstr
a = {1:'123', '2': 345 }
print(type(a))    #輸出:<class 'dict'>

也可這樣宣告

a = {}
a['one'] = 1
a[2] = 'two'
print(type(a))    #輸出:<class 'dict'>
  • 使用
a = {'one':1, 2:'two'}
print(type(a))    #輸出:<class 'dict'>
print(a['one'])      #輸出:1
print(a[2])     #輸出:two

操作應用

a = {'one':1, 'two':2, 'tree':3, 'four':4}    #範例
#key 為鍵值、value為值
  • a.clear() : 清空字典
  • a1 = a.copy: 將a內容拷貝一份給a1
  • a.items() : 回傳dict_items格式的字典的(key,value)
print(a.items()) 
#輸出:dict_items([('one', 1), ('two', 2), ('tree', 3), ('four', 4)])
  • a.keys() : 列出所有Key
print(a.keys()) 
#輸出:dict_keys(['one', 'two', 'tree', 'four'])
  • a.values() : 列出所有value
print(a.values()) 
#輸出:dict_values([1, 2, 3, 4])
  • a.update(a2) : 將a2的key對應的value更新到a相同的key的value
a2 = {'one':11, 'two':222} 
a.update(a2)
print(a) 
#輸出:{'one': 11, 'two': 222, 'tree': 3, 'four': 4}
  • len(a) : 取得字典長度
  • max(a) : 取得字典最大值
  • min(a) : 取得字典最小值

第四種碗 Set

set也稱作集合,以樣使用{}宣告與dict不同的是沒有Key僅存放值,其主要目的是為了數學上有關集合的算法為主如以下範例:

a = {1, 2, 3, 4, 5}
b = {3, 4, 5, 6, 7}

print(type(a))
#數學上集合的運算子:
#且AND &
print(a & b)   #輸出:{3, 4, 5}
#或OR
print(a | b)   #輸出:{1, 2, 3, 4, 5, 6, 7}
#互斥XOR
print(a ^ b)   #輸出:{1, 2, 6, 7}

到此python的資料型態也告一段落嘍,暸解資料的型態對於程式的撰寫是非常重要的基本功呢,
下一篇將學習python的運算式.
文章內容如果有錯誤歡迎留言告知,可以幫忙糾正錯誤的觀念,感謝!


上一篇
Day7- 容器資料型態List介紹
下一篇
Day9- Python 運算式介紹
系列文
30天 python 學習心得分享30

尚未有邦友留言

立即登入留言