零基础入门Python3-set集合
一、set集合
1、创建set集合
set(list or str or tuple)
# 实例1,传入tuple
a=set((1,2,3,4,5,6))
print(type(a))
print(a)
>>> <class 'set'>
{1, 2, 3, 4, 5, 6}
# 实例2,传入list进行创建
a=set([1,2,3,4,5,6])
print(type(a))
print(a)
>>> <class 'set'>
{1, 2, 3, 4, 5, 6}
# 实例3,使用str进行创建
a=set('python')
print(type(a))
print(a)
>>> <class 'set'>
{'o', 'p', 'n', 'y', 't', 'h'}
# 这里我们看到,输出的set集合,字符串 'python'并不是按照顺序进行排序的,也验证了我们最开始的话。
2、set 的添加 和 删除
(1)set 的添加
变量 . add(str or tuple)
# add 对传入的数据不会进行拆解
变量 . update()
# update 会对传入的数据进行拆解
# 实例1
a={1,2}
print(type(a),a)
a.add('python')
print(type(a),a)
>>> <class 'set'> {1, 2}
<class 'set'> {1, 2, 'python'}
# 实例2
a={1,2}
print(type(a),a)
a.update('python')
print(type(a),a)
>>> <class 'set'> {1, 2}
<class 'set'> {1, 2, 'y', 'o', 'n', 't', 'p', 'h'}
(2)set 的删除
变量 . remove(元素) # 当元素不存在的时候,会报错
变量 . discard(元素) # 当元素不存在的时候,不会报错
# 实例1
b={1,2,3,'a','b','c'}
print(b)
b.remove('a')
print(b)
>>> {1, 'a', 2, 3, 'c', 'b'}
{1, 2, 3, 'c', 'b'}
# 用remove删除元素的时候,如果元素不存在,那么就会报错
# 实例2
b={1,2,3,'a','b','c'}
print(b)
b.discard(3)
print(b)
>>> {1, 2, 3, 'b', 'c', 'a'}
{1, 2, 'b', 'c', 'a'}
(3)set去重的特性
也就是set中的元素是不容许有重复出现的。
# 实例
a=[1,2,2,2,3,4,4,5,6,7,7]
print(a)
b=set(a)
print(b)
>>> [1, 2, 2, 2, 3, 4, 4, 5, 6, 7, 7]
{1, 2, 3, 4, 5, 6, 7}
# 当 list 转换成 set 的时候,set自动删除重复的元素。
3、集合
a={1,2,3,4,5,6}
b={4,5,6,7,8,9}
# 1 issubset 等同于 <=
print(a.issubset(b)) # 测试a中的每一个元素是否都在b中
print(a<=b) #这两个表示的意思都是一样的
>>> False
False
# 2 issuperset 等同于 >=
print(a.issuperset(b)) # 测试 b 的元素是否都在 a 中
print(a>=b)
>>> {1, 2, 3, 4, 5, 6, 7, 8, 9}
False
False
# 3 union 和 | 是并集的意思
print(a|b)
print(a.union(b))
>>> {1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
# 并集之后,set会对元素进行去重
# 4 intersection 和 & 是交集的意思
print(a.intersection(b))
print(a&b)
>>> {4, 5, 6}
{4, 5, 6}
# 交集就是两个set的都有的元素
# 5 difference 和 —
print(a.difference(b))
print(a-b)
>>> {1, 2, 3}
{1, 2, 3}
# 返回 a 中有,而 b 中没有的元素
# 6 symmetric_difference 和 ^
print(a.symmetric_difference(b))
print(a^b)
>>> {1, 2, 3, 7, 8, 9}
{1, 2, 3, 7, 8, 9}
# 返回 a 和 b 中不重复的元素
# 7 特别需要注意:
a={1,2,3,4,5,6}
b={4,5,6,7,8,9}
c=a|b
print(type(c))
print(c)
>>> <class 'set'>
{1, 2, 3, 4, 5, 6, 7, 8, 9}
# 所有集合的运算结果返回的都是 set 类型。
# 8 set 的浅复制
d=a.copy()
print(d)
>>> {1,2,3,4,5,6}
# 9 set的深复制,暂且不谈,以后会提到