Dictionary 資料型態的常見基本操作-Python 從零開始(四)

本系列會從 Python 基本的語法開始介紹,讓沒有程式背景的新手,也能開始用 Python 程式交易。如果你是進階的交易者,可以點擊連結觀看量化通其他 Python 進階文章,認識 爬蟲實用套件資產配置 等內容。

建議可以照順序閱讀,從零開始學習 Python:

一、Python 資料處理-dictionary 字典資料

字典 dictionary 也是一種資料型態,它的概念就是來自於字典,用索引的方式儲存資料。就像是查字典一樣經由一個「關鍵字 Key」(字典的字本身),回傳對應的「值 Value」(對於那個字的解釋或是內容)給使用者。

大概跟大家介紹一下 dictionary的用法與原因,因為 dictionary 的原則就是 key + value,與 list 不同的是,dictionary 是沒有順序的,效率也會比用 list 的 for 迴圈來的好很多,以下大概分成幾個部分跟大家解釋 dictionary的用法。

1. dictionary 字典的使用方式

dictionary 使用的方式要用大括號{}裝起來,關鍵字 key 只能是單一的文字(str)或數值(int、float),但對應值 Value 資料型態不限。

變數 = {關鍵字key:對應值value, 關鍵字key:對應值value}

a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' }
print(type(a))

#也可以這樣使用
a = {}
a['上市公司'] = '台泥'
a['股票代碼'] = '1101'
print(type(a))

結果:

<class 'dict'>
<class 'dict'>

二、Pytho 常見的基本 dictionary 使用方式

  1. 查詢關鍵字或對應值
a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' } 
print(a['上市公司']) 
print(a['股票代碼'])

結果:

台泥 
1101
  1. 查詢所有 key 關鍵字
a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' } 
print(a.keys())

結果:

dict_keys(['上市公司', '股票代碼', '日期'])
  1. 查詢所有 value 對應值
a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' } 
print(a.values())

結果:

dict_values(['台泥', '1101', '0113'])
  1. 查詢 dictionary 字典長度
a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' } 
print(len(a))

結果:

3  # Key/value 算一組
  1. 清空 dictionary 字典的資料
a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' } 
a.clear()  
print(a)

結果:

{}
  1. max(a) : 取得 dictionary 字典最大值
a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' } 
print(max(a))

結果:

股票代碼
  1. min(a) : 取得 dictionary 字典最小值
a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' } 
print(min(a))

結果:

上市公司

三、Pytho 進階 dictionary 使用方式

  1. 利用 list 型態轉換取得資料

這邊跟大家分享個小技巧,如果想要取得 key 的清單,可以直接利用型態轉換來完成。

a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' } 
print(list(a.keys()) ) #獲取 key 串列資料型別

結果:

['上市公司', '股票代碼', '日期']

反之,value 對應值的清單也是一樣的喔!

a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' } 
print(list(a.values()) ) #獲取 values 串列資料型別

結果:

['台泥', '1101', '0113']
  1. 透過 items 函數,以 list 串列的方式呈現
a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' } 
a.items()
print(a.items()) 

結果:

dict_items([('上市公司', '台泥'), ('股票代碼', '1101'), ('日期', '0113')])
  1. 新增 dictionary 字典資料
a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' } 
a1 = {'市場別': '上市', '產業別':'水泥工業'} 
a.update(a1)
print(a)

結果:

{'上市公司': '台泥', '股票代碼': '1101', '日期': '0113', '市場別': '上市', '產業別': '水泥工業'}

除了原本的 a  = {} 的作法外,如果對於字典內容並不是固定的,有一個很好的新增方法。

a = {'上市公司': '台泥'}

a['股票代碼'] = '1101'
a['日期'] = '0113'

結果:

{'上市公司': '台泥', '股票代碼': '1101', '日期': ' 0113'}
  1. 刪除 key 關鍵字資料
a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' } 
a.pop('上市公司')
print(a)

結果:

{'股票代碼': '1101', '日期': '0113'}

除了 pop 可以刪除 key,使用 del 也可以刪除。

a = {'上市公司': '台泥', '股票代碼': '1101' , '日期': '0113' }
del a["上市公司"]

print(a) 

結果:

{'股票代碼': '1101', '日期': '0113'}

以上就是常見的字典進階操作,雖然一開始不知道會用在什麼時候,但一樣當需要用的時候,再來找就好。不需要去記下所有的使用方式。今天的介紹到這邊,如果有更多的想法,隨時再跟我說囉!

延伸閱讀:


量化通粉絲社群,一起討論程式交易!

加入LINE匿名群組量化通QuantPass」無壓力討論與分享!

追蹤量化通的粉絲專頁量化通QuantPass」即時獲取實用的資源!

python_course_all_1920X400
RoWay
RoWay

多年投資經驗的兩岸三地操盤手,曾任海外資產管理公司交易平台的產品經理、與各外商投資公司合作開發各式交易策略與系統。

擅長用Python執行資料蒐集、整理、分析與交易;也善於用Multicharts、MetaTrader等系統建構並回測期貨、期權、區塊鏈策略進而完成投資組合管理。

文章: 26

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *