組的概念

xmd_bmx發表於2020-10-31

第四章、組的概念

  • 組在python中其實是序列,str,list,tuple都是序列,每一個序列中的元素都會分配一個序號

一、列表(list)

  1. 列表的定義
[1,2,3,4]
type([1,2,3,4]) # 檢視資料型別
  1. 列表是動態資料型別,列表中也可以存不同的資料型別的資料
["hello world",1,[1,2],True,False]
  1. 列表中加入列表,叫巢狀列表
[[1,2,3],[4,5,6],[7,8,9]]
  1. 列表的操作
["星月打擊","蒼白之瀑","月之降臨","月神衝刺"]
["星月打擊","蒼白之瀑","月之降臨","月神衝刺"][0] # 訪問字串
["星月打擊","蒼白之瀑","月之降臨","月神衝刺"][-1:] # 用冒號這種訪問方式獲得的資料依據是列表
["星月打擊","蒼白之瀑","月之降臨","月神衝刺"]+["星月打擊","蒼白之瀑","月之降臨","月神衝刺"] # 兩個列表變成一個列表
["星月打擊","蒼白之瀑","月之降臨","月神衝刺"]*3 # 將列表資料乘3倍

二、元組(tuple)

  1. 元組的定義
() # 小括號
(1,2,3,4)
("1",2,True)
  1. 元組的訪問
(1,2,3,4)[1]
(1,2,3,4)[-1:]
  1. 元組的操作
(1,2,3,4)*3
(1,2,3,4)+(1,2,3,4)
  1. type((1)) # 整型
    type(("hello")) # str
    
    • 原因:在python中元組的定義和運算子小括號衝突,編譯器強制規定,只有一個元素的時候是小括號,想要定義一個元素的元組時可以在數字後面加一個逗號。

    • type((1,)) # 元組
      
  2. 表示空的元組

type(()) # 空的元組
type([]) # 空的列表

序列的共有特性

  1. []操作序列
["星月打擊","蒼白之瀑","月之降臨","月神衝刺"][0] # 訪問字串
["星月打擊","蒼白之瀑","月之降臨","月神衝刺"][-1:] # 訪問字串
  1. [:]切片操作
"hello world"[1:3] # 切2-4這幾個元素
"hello world"[0:8:2] # 隔兩個取一次
  1. 序列可以+、*
  2. 一個序列中是否包含某個元素用in1
3 in [1,2,3,4,5,6,7] # 返回Ture
  1. 某個元素不在這個序列中用not in2
3 not in [1,2,3,4,5,6,7] # 返回False
  1. 檢視某個序列有多少元素len
len([1,2,3,4,5]) # 返回5
len("hello world") # 返回11
  1. 求最大值和最小值max,min
max([1,2,3,4,5]) # 返回5
min([1,2,3,4,5]) # 返回1
max("helllo world") # 返回w
min("helllo world") # 返回空格
min("hellloworld") # 返回d
  • 總結:序列中的最大最小按照字元編碼進行排序ascll

  • 將字元轉換成asscll表中的數字

  • ord("w") # 119 
    ord(" ") # 32
    

三、集合set(無序)

  1. 定義:用花括號
{}
{1,2,3,4,5}
type({1,2})
{1,2,3,4,5}[0]  # 報錯,所以更不能切片
  1. 集合的特點

    1. 無序
    2. 唯一
    {1,1,2,2,3,3} # 結果:{1,2,3}
    
  2. 集合支援的操作

    • len

    • len({1,2,3,4})
      
    • in/not in

    • 1 in {1,2,3,4}
      1 not in {1,2,3,4}
      
  3. 集合的特殊操作(只有集合才有這個操作)

    • - 差集

      • {1,2,3,4} - {3,4} # 結果{1,2}
        
    • |求並集

      • {1,2,3,4} | {4,5,6} # 結果){1,2,3,4,5,6}
        
    • &求交集

      • {1,2,3,4} & {3,4} # 結果{3,4}
        
  4. 如何定義一個空的集合。

    • type({}) # 結果:dict字典
      type(set()) # 結果:空的集合
      

四、字典

  1. 很多個key3和value4,集合型別,但是卻不是序列

  2. 定義:

    1. {key1:value,key2:value2,key3:value3}
      {"Q":"星月打擊","W":"蒼白之瀑","E":"月之降臨","R":"月神衝刺"}
      
  3. 字典的操作不能按照序列的方式

    • {"Q":"星月打擊","W":"蒼白之瀑","E":"月之降臨","R":"月神衝刺"}["Q"]
      
    • 字典中是不能存在兩個相同的key的

    • {"Q":"星月打擊","Q":"蒼白之瀑","E":"月之降臨","R":"月神衝刺"}["Q"] # 結果:"蒼白之瀑"
      {"Q":"星月打擊","Q":"蒼白之瀑","E":"月之降臨","R":"月神衝刺"} # 結果:{"Q":"蒼白之瀑","E":"月之降臨","R":"月神衝刺"}
      
  4. 空的字典定義

    • type({}) # dict
      

  1. 運算子,返回bool型別 ↩︎

  2. 運算子,返回bool型別 ↩︎

  3. key為鍵值,不能重複,重複的話會覆蓋,前一個鍵的值,key不可以是任意的資料型別,key必須是不可變資料型別 ↩︎

  4. value可以取任意的資料型別 ↩︎

相關文章