教程:
集合是一个无序不重复元素的序列,它的特点是:有的可变,有的不可变,元素无序不可重复!
一:集合的创建
(1)使用花括号
set={value1, values2}
注意创建一个空集合的时候不能用{},此时创建的是一个字典
(2)使用内联函数set()------>可以原地修改的集合
s = set()
注意: 集合是无序的(集合不是序列类型,则集合也不支持索引和切片),
打印结果取决于内部存储结构和输出方式
(3)使用内联函数frozenset()---->hashable 可哈希卡类型
二:集合的索引(不允许)
File "<ipython-input-5-9b6a789630ee>", line 1, in <module>
set_1[1]
TypeError: 'set' object does not support indexing
三:集合的运算
(1)元素与集合之间的关系
'i' in set('ilove')
(2)集合a与集合b之间的关系
a == b 判断是否相等
a < b 或者 a.issubset(b) 判断是否为子集
a 并 b ---> a|b 或者 a.union(b)
a 交 b ---> a&b 或者 a.intersection(b)
a 补 b ---> a-b 或者 a.difference(b)
a 和 b 的对称差集 a^b 或者 a.symmetric_difference(b)
三:集合元素的添加
(1)方法一: s.add(x)
(2)方法二: s.update(x) 其中x可以是列表,元组,字典
四:集合元素的删除
(1)方法一: s.remove(x) 元素不存在发生错误
(2)方法二: s.discard(x) 元素不存在不会发生错误
(3)方法三: s.pop() 随机删除一个元素
(4)方法四: s.clear() 清空集合
五:集合内置函数
len(set)----set元素的总数
set.add()-----添加
set.update()--更新
还包括上面的四个函数
CODE:
# -----------------------------------------------------------------------------------------------------#
# 集合的创建
# -----------------------------------------------------------------------------------------------------#
set_1 = set('abracadabra') # 创建可变的集合
print("set_1:", set_1)
set_1.add('python') # 元素的添加
print("添加Python后set_1:", set_1)
set_2 = set('alacazam')
print("set_2:", set_2)
set_3 = frozenset('faith') # 创建不可变的集合验证元素不可添加
print("创建不可变集合set_3:", set_3)
# -----------------------------------------------------------------------------------------------------#
# 集合的运算
# -----------------------------------------------------------------------------------------------------#
print("set_1 - set_2: ", set_1 - set_2)
print("set_1 | set_2: ", set_1 | set_2)
print("set_1 & set_2: ", set_1 & set_2)
print("set_1 ^ set_2: ", set_1 ^ set_2)
# -----------------------------------------------------------------------------------------------------#
# 集合元素的添加(对于可变集合)
# -----------------------------------------------------------------------------------------------------#
# 方法一
set_2 = set('alacazam')
set_2.add("faith")
print("添加元素方法一:", set_2)
# 方法二
x = {1, 2, 3, 'aaa'} # 列表
y = (1, 2, 3, 'aaa') # 元组
z = {1: 'wang', 2: 'aaa'} # 字典--->只添加键值
set_2.update(z)
print("添加元素方法二:", set_2)
# -----------------------------------------------------------------------------------------------------#
# 集合元素的删除
# -----------------------------------------------------------------------------------------------------#
# 方法一
set_2.remove('faith')
print("删除元素方法一:", set_2)
# 方法二
set_2.discard('1')
print("删除元素方法二:", set_2)
# 方法三
set_2.pop()
print("删除元素方法三:", set_2)
# 方法三
set_2.clear()
print("删除元素方法四:", set_2)