Python3 教學 #02 (Ch5: List、Tuple、Set、Dictionary)

本章會介紹Python內建幾個重要的資料結構:List、Tuple、Set、Dictionary
NumPy讓大家在使用Python時可以專注在資料處理邏輯上,不需要花時間在資料結構撰寫!
在進行矩陣運算時也會用到許多這些資料結構的觀念,因此這部分的學習對於機器學習、深度學習、人工智慧都有深遠的影響!
(以下語法教學都是以Python 3.6撰寫。)

List

宣告

 

方法

list.append(element)
將元素x加入至list的尾端,等同於語法『 list[len(list):] = [x] 』

 

list.extend(L)
將L這個List增加至list之中,等同於語法『 list[len(list):] = L 』

 

list.insert(i, element)
將element插入至第 i 個index的位置

 

list.remove(value)
刪除list中特定元素值的第一個元素

 

list.pop(i)
取出list中指定第 i 個元素,並且將該元素刪除
list.pop()
取出list中最尾端的元素,並且將該元素刪除(像是堆疊Stack那樣)
在實務應用上可以用一個變數來接收pop出來的元素喔!

 

list.index(value)
找出特定元素值的第一個位置(index)

 

list.count(value)
列出特定元素值的元素數量

 

list.sort()
將list由小至大排序
list.reverse()
將list由大至小排序

 

list.copy()
拷貝一個list

 

list.clear()
清除list內所有資料

 

Tuple

Tuple就跟List很像,但是一經宣告之後,便無法修改內容!

 

如果需要將list轉型成tuple可以用『tuple(變數)』來完成轉型!

Output

 

Set

在集合(Set)裡面存放的是一群無順序且唯一的元素!

set(element)
用set()宣告集合!

 

in
確認元素是否存在於Set之中

 

差集(Difference)
SetA – SetB,輸出結果為SetA有,而SetB沒有的元素

 

聯集(Union)
回傳兩個Set所有的元素

 

交集(Intersection)
回傳兩個Set都要存在的元素

 

對稱差集合(Symmetric Difference)
這個原理有點複雜,點這裡看詳細解釋:Symmetric Difference(Wikipedia)
但如果是只有兩個Set做運算的話,結果會是(SetA或SetB)而且(去除SetA、SetB都有的元素)!

 

Dictionary

字典(Dictionary),這算是很經典的資料結構之一。
使用大括號宣告字典即可

宣告

 

修改數值

 

字典Key清單
取出字典內的Key值

 

確認字典是否存在某特定Key

 

刪除字典裡的元素

 

Differences between List & Tuple

我們都知道List和Tuple最大的差異在於Tuple的內容是創建之後就無法修改的。
但List & Tuple這兩個資料結構該怎麼運用呢?

我相信Tuple的運用情境肯定比較困難,終於找到一個情境:

 

用Tuple實作multi-key Dict

Output

 

References
  1. Python List vs. Tuples

Andy Wang

站在巨人的肩膀上仍須戰戰兢兢!

2 thoughts on “Python3 教學 #02 (Ch5: List、Tuple、Set、Dictionary)

  • 2018-06-05 at 11:43:02
    Permalink

    請問以上各種在用途上有甚麼舉例?謝

    Reply
    • 2018-06-28 at 16:21:10
      Permalink

      抱歉,前陣子在忙,導致現在才能回覆!
      在網路上找到一個蠻有趣的使用案例,已經添加到本文最下方!
      另一個使用案例,建議您觀察看看物件傳入Array與存取Array的方式(call-by-value/call-by-address),再來決定何時可以使用Tuple來保護物件內的共用變數。

      Reply

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *