close

第三章、填充、串列、Turple、字典、與集合

 

串列

  • 用[]來建立串列

6.PNG

  • 用append() 來附加項目到結尾
  • 用extend() 或 += 來結合串列
  • 用del 串列[位移植] 來刪除一個項目
  • 用remove(值)來刪除項目
  • 用pop(位移植)來取得一個項目,並刪除它
  • 用index(值)來尋找某個項目的位移值
  • 用in來測試串列中是否存在某個值  
  • 用count()來算出某個值得出現次數
  • 用join()來轉換成字串
  • sort()就地排序串列本身

       python對sort預設為升冪,但可以加入引數(reverse=True)改為降冪

1.PNG

 

  • sorted()會排序串列,並回傳複
  • 使用len()來獲得長度
  • 用 = 來指派

      將一個串列指派給多個變數的時候,對其中一個變數的內容作更動,也會更改其他變數的內容

2.PNG

  • 用copy()來複製

         使用下列三個方法,將串列的值複製到一個全新的串列:

  1. 串列的copy()函式
  2. list()的轉換函式
  3. 串列slice[:]

3.PNG

 

 

 

Tuple

  • Tuple通常可以用來取代串列,但功能較少,沒有append()、extend(),因為Tuple建立後就不能在修改
  • 用()來建立Tuple
  • 在元素後面加上逗號來建立Tuple(真正定義Tuple的是元素後的逗號)

        4.PNG

        ※可以看出加上逗號會自動建立成Tuple

  • Tuple可以一次指派給多個變數

        5.PNG

        ※有時這稱為tuple開箱(unpacking)

  • Tuple()轉換函式可將其他的東西做成Tuple

 

 

 

 

字典

  • 字典跟串列很像,但不在乎項目的順序,也不會用0或1等位移值來選擇項目

          你必須為每個值來指定一個獨一無二的"鍵"(通常是字串)

       字典通常是可變的,你可以添加、刪除、改變他們的"鍵"、"值"元素

  • 用{}來建立字典
  • 用括號來建立一個小型字典

7.PNG

  • 用dict()來轉換,將雙值序列轉換到字典裏面,每個序列第一個項目為"鍵",第二個項目為"值"

8.PNG

  • 將一個新的項目加入字典,只要用項目的"鍵"來參考它,並賦予一個新的"值"即可

9.PNG

※  藉由同一個"鍵"可以更改它的"值"

  • 在字典中,每個"鍵"是獨一無二的,如果多次使用一樣的"鍵",則最後一次輸入給他的"值"會勝出
  • 用"字典一.update(字典二)"來合併兩個字典,若兩個字典有相同的"鍵",第二個字典的"值"將會勝出
  • 用del與"鍵"來刪除項目

10.PNG

  • 用.clear()來刪除所有項目
  • 使用 in 來測試字典是否有某個鍵
  • 用"鍵"來取得一個項目,若沒有該"鍵"則會得到一個例外

11.PNG

  • 使用keys()來取得所有的"鍵"

12.PNG

  • 使用valus()來取得所有的值
  • 使用items()來取得所有的('鍵','值')對
  • 用 = 來指派,用copy()來複製

 

 

集合

  • 就像是被移除"值"只留下"鍵"的字典,每個"鍵"都必須是獨一無二的

      當你只想知道某個東西是否存在,其他都無所謂時,就是使用集合的時機

  • 用set()來建立

13.PNG

  • 用set()轉換其他類型,將字典轉換給集合,只會用到"鍵"
  • 使用 in 來測試值(這是集合最常使用到的地方)

14.PNG

※建立一個叫做drinks的字典,"鍵"為人名,"值"為包含兩種飲料的一個集合

for、if、and、or會在之後的文章提到,name,content不用像其他程式語言宣告,可以直接對應到字典的"鍵":"值"

第二段程式為測試喝'matcha'的人

第三段程式為測試喝'matcha'但不喜歡'soda'或是'oil'的人

  • 集合與運算子 

15.PNG

※"&"為集合交集運算子,當你想找出含有某兩個元素的"鍵"即可使用

16.PNG

※"&"運算子會產生一個集合,存有你所比較兩個串列內都有的項目如果contents中沒有任何飲料,則"&"會回傳一個空集合它會被視為"False"

  •  用"&"或是.intersection()取得交集

17.PNG

  • 用"|"或是.union()來取得聯集(兩組集合的成員)
  • 用"-"或是.difference()來取得差集(屬於第一個集合,但不屬於第二個)
  • 用"^"或是symmertic.difference()來取得互斥(只屬於其中一個集合)
  • 用"<="或.issubset()來檢查某集合是否為另一個集合的子集合
  • 用">="或.issuperset()來檢查某集合是否為另一個集合的超集合(子集合的相反

 

 

 

 

 

 

練習題

 

  • 建立一個year_list的串列,放入五個年份,選取第三個年份

21.PNG

  • 建立一個things的串列,使用'mozzarella','cin derella','salmonlla'作為它的元素

      刪除'cin derella'加入'Nobel Prize',將第二個字母的開頭改為大寫

 

22.PNG

  • 建立一個surprise串列,使用surprise ='Groucho','Chico','Harpo'作為它的元素

      將surprise最後一個元素改為小寫,將它反過來,再將他的第一個字母改為大寫

23.PNG

  • 製作一個叫做e2f的英法字典以下為初始的單字"dog"是"chien",
    "cat"是"chat","walrus"是"morse",印出e2f中walrus的法文單字

24.PNG

  • 用e2f來做一個法英字典,稱為f2e,使用items()的方法

25.PNG

  • 製作一個多層次的字典,稱為life頂層使用'animal','plants','other',讓'animal'參考其他擁有'cats','octopi','emus'的字典
  • 'cats'參考一個串列,裡面的值是'Henri','Grumy','Lucy'
  • 印出life最頂層的鍵,印出life['animal']的鍵,印出life['animal']['cats']的值

 

26.PNG

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ivankao 的頭像
    ivankao

    IvanKao的部落格

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