1. 程式人生 > >(python)數據結構---集合

(python)數據結構---集合

結構 pytho 等於 都在 style 參數 要求 集合 復雜度

一、描述

  • set翻譯為集合
  • set是可變的無序的不可重復的
  • set的元素要求可哈西(不可變的數據類型可哈西,可變的數據類型不可哈希)
  • set是無序的,因此不可以索引,也不可以修改
  • 線型結構的查詢時間復雜度是O(n),隨著數據的增大而效率下降;set、dict內部使用hash值作為key,時間復雜度可以做到O(1),和數據規模無關

二、集合的相關方法

1、set.add(elem)

  • 增加一個元素到集合中,如果集合中已經有這個元素,則什麽都不做。
1 s = {2, 3, 4, 5}
2 s.add(6)
3 print(s)

運行結果如下:
{2, 3, 4, 5, 6}

2、set.update(iterable)

  • 用法與add方法一致,只不過參數必須是可叠代對象
1 s = {2, 3, 4, 5}
2 s.update("a")
3 print(s)

運行結果如下:
{2, 3, 4, 5, ‘a‘}

3、set.remove(elem)

  • 從set中移除指定的元素,如果元素不存在,拋異常KeyError
  • 與它作用相同的方法是discard(elem),不同在於如果元素不存在,什麽都不做
1 s = {2, 3, 4, 5}
2 s.remove(2)
3 print(s)

運行結果如下:
{3, 4, 5}

4、set.pop()

  • 移除並返回任意的元素
  • 如果是空集,則拋異常KeyError
1 s = {3, 4, 5}
2 s.pop()
3 print(s)

運行結果如下:
{4, 5}

5、set.clear()

  • 清空集合

三、集合的相關概念

1、全集

  • 所有元素的集合

2、子集和超集

  • 一個集合A的所有元素都在另一個集合B內,A就是B的子集,B就是A的超集

3、真子集和真超集

  • A是B的子集,且A不等於B,A就是B的真子集,B就是A的真超集

4、並集

  • 多個集合合並的結果

5、交集

  • 多個集合的公共部分

6、差集

  • 集合中除去和其他集合公共的部分

(python)數據結構---集合