python0 2019-04-17
set 是一个无序的元素集合,支持并、交、差及对称差等数学运算, 但由于 set 不记录元素位置,因此不支持索引、分片等类序列的操作。
初始化
代码如下:
s0 = set() d0 = {} s1 = {0} s2 = {i % 2 for i in range(10)} s = set('hi') t = set(['h', 'e', 'l', 'l', 'o']) print(s0, s1, s2, s, t, type(d0))
代码如下:
set() {0} {0, 1} {'i', 'h'} {'e', 'o', 'l', 'h'} <class 'dict'>
运算操作
代码如下:
print(s.intersection(t), s & t) # 交集 print(s.union(t), s | t) # 并集 print(s.difference(t), s - t) # 差集 print(s.symmetric_difference(t), s ^ t) # 对称差集 print(s1.issubset(s2), s1 <= s2) # 子集 print(s1.issuperset(s2), s1 >= s2) # 包含
运行结果:
代码如下:
{'h'} {'h'} {'l', 'h', 'i', 'o', 'e'} {'l', 'h', 'i', 'o', 'e'} {'i'} {'i'} {'i', 'l', 'o', 'e'} {'i', 'l', 'o', 'e'} True True False False
基本方法
代码如下:
s = {0} print(s, len(s)) # 获取集合中的元素的总数 s.add("x") # 添加一个元素 print(s) s.update([1,2,3]) # 添加多个元素 print(s, "x" in s) # 成员资格测试 s.remove("x") # 去掉一个元素 print(s, "x" not in s) s.discard("x") # 如果集合存在指定元素,则删除该元素 c = s.copy() # 复制集合 print(s, s.pop()) # 弹出集合中的一个不确定元素,如果原集合为空则引发 KeyError s.clear() # 删除集合中的元素 print(s, c)
代码如下:
{0} 1 {0, 'x'} {0, 'x', 1, 2, 3} True {0, 1, 2, 3} True {1, 2, 3} 0 set() {0, 1, 2, 3}