【Python】組合資料型別

Nemo&發表於2020-05-31

集合型別

集合型別定義

集合是多個元素的無序組合

  • 集合型別與數學中的集合概念一致
  • 集合元素之間無序,每個元素唯一,不存在相同元素
  • 集合元素不可更改,不能是可變資料型別

    理解:因為集合型別不重複,所以不能更改,否則有可能重複。

集合是多個元素的無序組合

  • 集合用大括號 {} 表示,元素間用逗號分隔
  • 建立集合型別用 {}set()
  • 建立空集合型別,必須使用set()

集合操作符

操作符及應用 描述
S | T 並,返回一個新集合,包括在集合S和T中的所有元素
S - T 差,返回一個新集合,包括在集合S但不在T中的元素
S & T 交,返回一個新集合,包括同時在集合S和T中的元素
S ^ T 補,返回一個新集合,包括集合S和T中的非相同元素
S <= T 或 S < T 返回True/False,判斷S和T的子集關係
S >= T 或 S > T 返回True/False,判斷S和T的包含關係
S = T
S -= T 差,更新集合S,包括在集合S但不在T中的元素
S &= T 交,更新集合S,包括同時在集合S和T中的元素
S ^= T 補,更新集合S,包括集合S和T中的非相同元素

集合處理方法

操作函式或方法 描述
S.add(x) 如果x不在集合S中,將x增加到S
S.discard(x) 移除S中元素x,如果x不在集合S中,不報錯
S.remove(x) 移除S中元素x,如果x不在集合S中,產生KeyError異常
S.clear() 移除S中所有元素
S.pop() 隨機返回S的一個元素,更新S,若S為空產生KeyError異常
S.copy() 返回集合S的一個副本
len(S) 返回集合S的元素個數
x in S 判斷S中元素x,x在集合S中,返回True,否則返回False
x not in S 判斷S中元素x,x不在集合S中,返回True,否則返回False
set(x) 將其他型別變數x轉變為集合型別

集合型別應用場景

資料去重:集合型別所有元素無重複

序列型別

序列型別定義

序列是具有先後關係的一組元素

  • 序列是一維元素向量,元素型別可以不同
  • 類似數學元素序列: s0, s1, … , sn-1
  • 元素間由序號引導,通過下標訪問序列的特定元素

【Python】組合資料型別

序列處理函式及方法

操作符及應用 描述
x in s 如果x是序列s的元素,返回True,否則返回False
x not in s 如果x是序列s的元素,返回False,否則返回True
s + t 連線兩個序列s和t
s*n 或 n*s 將序列s複製n次
s[i] 索引,返回s中的第i個元素,i是序列的序號
s[i: j]
s[i: j: k]
切片,返回序列s中第i到j以k為步長的元素子序列
函式和方法 描述
len(s) 返回序列s的長度,即元素個數
min(s) 返回序列s的最小元素,s中元素需要可比較
max(s) 返回序列s的最大元素,s中元素需要可比較
s.index(x)
s.index(x, i, j)
返回序列s從i開始到j位置中第一次出現元素x的位置
s.count(x) 返回序列s中出現x的總次數

元組型別及操作

元組是序列型別的一種擴充套件

  • 元組是一種序列型別,一旦建立就不能被修改
  • 使用小括號 ()tuple() 建立,元素間用逗號 , 分隔
  • 可以使用或不使用小括號

元組繼承序列型別的全部通用操作

  • 元組繼承了序列型別的全部通用操作
  • 元組因為建立後不能修改,因此沒有特殊操作
  • 使用或不使用小括號

列表型別及操作

列表是序列型別的一種擴充套件,十分常用

  • 列表是一種序列型別,建立後可以隨意被修改
  • 使用方括號 [] 或list() 建立,元素間用逗號 , 分隔
  • 列表中各元素型別可以不同,無長度限制
函式或方法 描述
ls[i] = x 替換列表ls第i元素為x
ls[i: j: k] = lt 用列表lt替換ls切片後所對應元素子列表
del ls[i] 刪除列表ls中第i元素
del ls[i: j: k] 刪除列表ls中第i到第j以k為步長的元素
ls += lt 更新列表ls,將列表lt元素增加到列表ls中
ls *= n 更新列表ls,其元素重複n次
函式或方法 描述
ls.append(x) 在列表ls最後增加一個元素x
ls.clear() 刪除列表ls中所有元素
ls.copy() 生成一個新列表,賦值ls中所有元素
ls.insert(i,x) 在列表ls的第i位置增加元素x
ls.pop(i) 將列表ls中第i位置元素取出並刪除該元素
ls.remove(x) 將列表ls中出現的第一個元素x刪除
ls.reverse() 將列表ls中的元素反轉

序列型別應用場景

資料表示:元組 和 列表

  • 元組用於元素不改變的應用場景,更多用於固定搭配場景
  • 列表更加靈活,它是最常用的序列型別
  • 最主要作用:表示一組有序資料,進而操作它們

元素遍歷

資料保護

  • 如果不希望資料被程式所改變,轉換成元組型別

字典

字典型別定義

  • 對映是一種鍵(索引)和值(資料)的對應
  • 鍵值對:鍵是資料索引的擴充套件
  • 字典是鍵值對的集合,鍵值對之間無序
  • 採用大括號{}dict()建立,鍵值對用冒號: 表示

{<鍵1>:<值1>, <鍵2>:<值2>, … , <鍵n>:<值n>}

<字典變數> = {<鍵1>:<值1>, … , <鍵n>:<值n>}
<值> = <字典變數>[<鍵>]
<字典變數>[<鍵>] = <值>
[ ] 用來向字典變數中索引或增加元素

字典處理函式及方法

函式或方法 描述
del d[k] 刪除字典d中鍵k對應的資料值
k in d 判斷鍵k是否在字典d中,如果在返回True,否則False
d.keys() 返回字典d中所有的鍵資訊
d.values() 返回字典d中所有的值資訊
d.items() 返回字典d中所有的鍵值對資訊
d.get(k, <default>) 鍵k存在,則返回相應值,不在則返回
d.pop(k, <default>) 鍵k存在,則取出相應值,不在則返回
d.popitem() 隨機從字典d中取出一個鍵值對,以元組形式返回
d.clear() 刪除所有的鍵值對
len(d) 返回字典d中元素的個數

字典型別應用場景

對映的表達

  • 對映無處不在,鍵值對無處不在
  • 例如:統計資料出現的次數,資料是鍵,次數是值
  • 最主要作用:表達鍵值對資料,進而操作它們

相關文章