在python中集合分兩種:
集合的特點:
線性結構的查詢時間複雜度是o(n),即隨著資料規模的增大而耗時增加。set和dict通過hash table實現,時間複雜度是o(1),查詢時間與資料規模無關。
建立乙個set。注意:建立乙個空集合必須使用set()而不是{},{}用來建立乙個空字典
s1 = set('abcde')
s2 = set(['a','b','c','d','e'])
s3 =
print(s1)
print(s2)
print(s3)
# #
#
建立乙個frozenset
s4 = frozenset('abcde')
print(s4)
# frozenset()
集合運算
s5 = set('cefxyz')
# 並集(合集),相加
print(s1 | s5)
# 這裡可以傳遞乙個或多個iterable,返回乙個新的集合
print(s1.union(s5))
# 'z', 'd', 'f', 'c', 'x', 'a', 'e', 'b', 'y'}
# 並等
s1 |= s5
print(s1)
# # 這裡也可以傳遞乙個或者多個iterable,不同的是這裡是就地修改
s1.update('opq')
print((s1))
# # 交集,公共部分
print(s1 & s5)
print(s1.intersection(s5))
# # 交等
s1 &= s5
print(s1)
print(s1.intersection_update('opq'))
# # 差集,相減
print(s1 - s5)
print(s1.difference(s5))
# # 差等
s1 -= s5
print(s1)
s1.difference_update(s5)
# # 對稱差集,並集減去交集
print(s1 ^ s5)
print(s1.symmetric_difference(s5))
# # 對稱差等
s1 ^= s5
print(s1)
s1.symmetric_difference_update(s5)
#
對於兩個集合a和b,如果a是b的子集,且a不等於b,那麼a就是b的真子集,b是a的真超集。
判斷乙個集合是否是另乙個集合的子集
s6 =
print(s1.issubset(s6))
# true
print(s1 <= s6)
# true
# 判斷真子集
print(s1 < s6)
# true
判斷乙個集合是否是另乙個集合的超集(父集)
print(s6.issuperset(s1))
# true
print(s6 >= s1)
# true
# 判斷真超集
print(s6 > s1)
# true
判斷兩個集合是否沒有交集
print(s1.isdisjoint(s6))
# false
新增乙個元素
s1.add('m')
print((s1))
#
刪除乙個元素
# 對於remove()方法,如果元素不存在將丟擲keyerror異常
s1.remove('a')
print((s1))
# # discard()方法同樣用來刪除乙個元素,不過元素不存在時不做任何操作,並且不會丟擲異常
s1.discard('b')
print(s1)
# # pop()刪除任意乙個元素並返回它的值,如果集合為空將丟擲keyerror異常
res = s1.pop()
print(res)
# d
參考文件
集合_(數學)
資料型別之集合
一 集合介紹 集合用於包含一組無序的物件。與列表和元組不同,集合是無序的,也無法通過數字進行索引。此外,集合中的元素不能重複。簡單總結 不重複,互異性 也就是說集合是天生去重的 元素為不可變物件,確定性,元素必須可hash 集合的元素沒有先後之分,無序性 二 集合的簡單操作 1.通過函式進行轉換 n...
資料型別之集合
集合 set 集合的元素是無序的,不重複的 1.獨有功能 1.增加元素 v v.add hh print v v.add hh print v d python3.6 python3.6.exe d python code day01 day06.py 2.刪除元素 v v.discard a pr...
python資料型別之集合型別
一 集合的作用 知識點回顧 可變型別是不可hash型別,不可變型別是可hash型別 作用 去重,關係運算 定義 可以包含多個元素,用逗號分割,集合的元素遵循三個原則 1.每個元素必須是不可變型別 可hash,可作為字典的key 2.沒有重複的元素 4.無序 注意集合的目的是將不同的值存放在一起,不同...