- 集合是没有value的字典(只有key),所以集合不容许重复,集合是无序的。
- 集合创建方式:
(1)花括号;
(2)使用内置函数set()。
s1 = {1,2,3,4,5}
s1 = set(range(6))
s1 = set({1,2,3,4,5})
s1 = set([1,2,2,4,4])
s1 = set('hello')
s1 = set()
s1 = {}
- 集合的增删改查;
(1)判断:使用in与not in判断集合中的元素是否存在;
(2)添加:使用add()方法添加一个元素,使用update()方法添加多个元素;
(3)删除:调用remove()方法删除一个元素,若不存在则报错keyerror;调用discard()方法删除一个元素,如果不存在不会报错;调用pop()方法任意删除一个元素;clear()方法清空集合。
s1 = {1,2,3}
print(1 in s1)
s1.add('1')
s1.update('2','3')
s1.update(['4','5'])
s1.remove('6')
s1.discard('6')
s1.pop()
s1.clear()
- 集合之间的相关关系(等于、包含、相交,与数学类似)
(1)判断两个集合是否相等:使用 运算符== 或 != ;
(2)判断子集(包含关系):调用 issubset()、issuperset()方法 ;
(3)判断交集:isdisjoint()方法。
s1 = {1,2,3}
s2 = {3,1,2}
print(s1 = s2)
s3 = {1,2,3,4,5,6,7,8}
s4 = {1,2,3}
s5 = {3,4,5}
print(s4.issubset(s3))
print(s3.issuperset(s4))
print(s4.isdisjoint(s5))
- 集合之间的相关操作(交集、并集、差集、对称差集,与数学类似)
(1)取交集:调用intersection()方法或者直接使用运算符&;
(2)取并集:调用union()方法或者直接使用运算符|;
(3)取差集:调用difference()方法或者直接使用运算符-;
(4)对称差集(即先取并集再减去交集):调用symmetric_difference()方法或者直接使用运算符^;
s3 = {1,2,3,4,5,6,7,8}
s4 = {1,2,3}
s5 = {3,4,5}
print(s4.intersection(s5))
print(s4 & s5)
print(s4.union(s5))
print(s4 | s5)
print(s4.difference(s5))
print(s4 - s5)
print(s4.symmetric_difference(s5))
print(s4 ^ s5)
- 集合生成式即用于生成集合的公式,格式为:{集合元素表达式 for 自定义变量 in range(1,6)},与列表生成式相比只有最外层的括号是不同的。
s1 = {i+1 for i in range(1,6)}