Python入門(九):集合

陳陳陳Chann發表於2020-10-05

  • 集合型別與數學中集合的概念一致,即包含0個或多個資料項的無序組合
  • 集合中元素不可重複
  • 集合元素型別只能是固定資料型別
    • 例如:整數、浮點數、字串、元組等
    • 列表、字典和集合型別本身都是可變資料型別,不能作為集合的元素出現
  • 集合是無序組合,沒有索引和位置的概念,不能切片
  • 集合中元素可以動態增加或刪除
  • 集合用大括號{}表示,可以用賦值語句生成一個集合
  • 集合型別主要用於三個場景:成員關係測試元素去重刪除資料項
  • 集合型別與其他型別最大的不同在於它不包含重複元素。因此,當需要對一維資料進行去重或進行資料重複處理時,一般通過集合來完成

1. 集合的分類

  • 可變集合(set)
    • {}:生成的是空字典
    • set()將資料結構轉換為可變集合型別
  • 不可變集合(frozenset)
    • frozenset()將資料結構轉換為不可變集合型別

2. 集合基本操作

  • 集合型別的4種基本操作,操作邏輯與數學定義相同

    • 交集(&)
    • 並集(|)
    • 差集(-)
    • 補集(^)

image

  • 集合型別6個操作符

    操作功能說明
    S-=T更新集合S,包括在集合S中但不在集合T中的元素
    S&=T更新集合S,包括同時在集合S和T中的元素
    S^=T更新集合S,包括S和T中的元素,但不包括同時在其中的元素
    S|=T更新集合S,包括集合S和T中的所有元素
    S<=T如果S<=T,返回True,否則返回False
    S>=T如果S>=T,返回True,否則返回False
  • 集合型別的10個操作函式

    操作功能說明
    set_name.add(x)如果資料項x不在集合中,則將x增加到集合中
    set_name.pop()返回集合中的第一個元素,並且刪除該元素
    set_name.clear()刪除集合中的所有元素
    set_name.discard(x)如果x在集合中,則移除該元素;如果x不在,不報錯
    set_name.remove(x)如果x在集合中,則移除該元素;如果不在,則報錯
    x in S如果x在S中,返回True,否則返回False
    x not in S如果x不在S中,返回True,否則返回False
    S.copy()返回集合S的一個拷貝
    len(S)返回集合S元素個數
    S.isdisjoint(T)如果集合S與T沒有相同元素,返回True

相關文章