組合數據類型(序列、集合、字典)

以下是我自己通過學習,總結記錄的學習筆記,希望能幫助到你。

組合數據類型(序列、集合、字典)

集合類型定義

  • 1.集合是多個元素的無序組合
  • -集合類型與數學中的集合概念一致
  • -集合元素之間無序,每個元素唯一,不存在相同元素
  • -集合元素不可更改,不能是可變數據類型
  • 2.集合是多個元素的無序組合
  • -集合用大括號{}表示,元素間用逗號分隔
  • -建立集合類型用{}或set()
  • -建立空集合類型,必須使用set()

集合操作符

6個操作符

  1. S|T 返回一個新集合,包括在集合S和T中的所有元素
  2. S-T 返回一個新集合,包括在集合S但不在T中的元素
  3. S&T 返回一個新集合,包括同時在集合S和T中的元素
  4. S^T 返回一個新集合,包括集合S和T中的非相同元素
  5. S<=T或S
  6. S>=T或S>T 返回true/false,判斷S和T的包含關係

4個增強操作符

  1. S|=T 更新集合S,包括在集合S和T中的所有元素
  2. S-=T 更新集合S,包括在集合S但不在T中的元素
  3. S&=T 更新集合S,包括同時在集合S和T中的元素
  4. S^=T 更新集合S,包括集合S和T中非相同的元素

集合處理的方法

  1. S.add(x) 如果x不在集合S中,將x增加到S
  2. S.discard(x) 移除S中元素x,如果x不在集合S中,不報錯
  3. S.remove(s) 移除S中元素x,如果x不在集合S中,產生KeyError異常
  4. S.clear() 移除S中所有元素
  5. S.pop() 隨機返回S的一個元素,更新S,若S為空產生KeyError異常
  6. S.copy() 返回集合S的一個副本
  7. len(S) 返回集合S的元素個數
  8. x in S 判斷S中元素x,x在集合S中,返回True,否則返回False
  9. x not in S 判斷S中元素x,x不在集合S中,返回False,否則返回True
  10. set(x) 講其他形式的變量轉換成集合形式
  11. list(S) 將S轉換為列表

數據去重:集合類型所有元素無重複


序列類型定義 (序列是一個基礎類型)

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

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

序列類型通用操作符

6個操作符

  1. x in s如果x是序列s的元素,返回True,否則返回False
  2. x not in s 如果x是序列s的元素,返回False,否則返回True
  3. s + t 連接兩個序列s和t
  4. s*n或n*s 將序列s複製n次
  5. s[i] 索引,返回s中的第i個元素,i是序列的序號
  6. s[i:j]或s[i:j:k] 切片,返回序列s中第i到j以k為步長的元素子序列

5個函數和方法

  1. len(s) 返回序列s的長度
  2. min(s) 返回序列s的最小元素,是中元素需要可比較
  3. max(s) 返回序列s的最大元素,是中元素需要可比較
  4. s.index(x)或s.index(x,i,j) 返回序列s從i開始到j位置中第一次出現元素x的位置
  5. s.count(x) 返回序列s中出現x的總次數

元祖是序列類型的一種擴展

  • -元祖是一種序列類型,一旦關鍵就不能被修改
  • -使用小括號()或tuple()創建,元素間用逗號,分隔
  • -可以使用小括號或不使用小括號

可以嵌套,並且索引嵌套的內容

不會輕易被更改,具有一定的數據保護的作用


列表是序列類型的一種擴展,十分常用

  • -列表是一種序列類型,創建後可以隨意被修改
  • -使用方括號[]或list()創建,元素間用逗號,分隔
  • -可以使用或不使用小括號

列表的賦值,沒有在系統中生成一個真真的列表,而是兩個名字同時賦給一個列表

列表類型操作函數和方法

  1. ls[i] = x 替換列表ls第i元素為x
  2. ls[i:j:k] = lt 用列表lt替換ls切片後所對應元素子列表
  3. del ls[i:j:k] 刪除列表ls中第i到第j以k為步長的元素
  4. del ls[i] 刪除列表ls中第i元素
  5. ls += lt 更新列表ls,將列表lt元素增加到列表ls中
  6. ls *= n 更新列表ls,其元素重複n次

列表類型操作函數和方法

  1. ls.append(x) 在列表ls最後增加一個元素x
  2. ls.clear() 刪除列表ls中所有元素
  3. ls.copy() 生成一個新列表,賦值ls中所有元素
  4. ls.insert(i,x) 在列表ls第i位置增加元素x
  5. ls.pop(i) 將列表老師中第i位置元素取出並刪除該元素
  6. ls.remove(x) 將列表ls中出現的第一個元素x刪除
  7. ls.reverse() 將列表ls中的元素反轉
  8. sorted() 可以對列表排序

判斷lt中是否包含數字0 0 in lt 返回true/false

eval() 函數具有取數的功能


字典類型及操作

字典類型的定義

映射是一種鍵(索引)和值(數據)的對應

字典類型是“映射”的體現

  • -鍵值對:鍵是數據索引的擴展
  • -字典是鍵值對的集合,鍵值對之間無序
  • -採用大括號{}和dict()創建,鍵值對用冒號:表示

生成一個空的字典可以使用{}生成。

字典處理函數和方法

  1. del d[k] 刪除字典d中鍵k對應的數據值
  2. k in d 判斷鍵k是否在字典d中,如果在返回True,否則False (k為索引)
  3. d.keys() 返回字典d中所有的鍵信息
  4. d.values() 返回字典d中所有的值信息
  5. 這兩種可以用for in的方式做遍歷但是不可以使用列表的方式做處理
  6. d.items() 返回字典d中所有的鍵值對信息
  7. d.get(k,) 鍵K存在,則返回相應值,不在則返回
  8. d.pop(k,) 鍵K存在,取出相應值,不在則返回
  9. d.popitem() 隨機從字典d中取出一個鍵值對,以元組形式返回
  10. d.clear() 刪除所有的鍵值對
  11. len(d) 返回字典d中元素的個數

向d新增2個鍵值對元素 d["a"] = 1;d["b"] = 2

修改第二個元素 d["b"] = 3


分享到:


相關文章: