(python)資料結構---集合
阿新 • • 發佈:2018-11-02
一、描述
- 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、差集
- 集合中除去和其他集合公共的部分