零基础入门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的深复制,暂且不谈,以后会提到