零基础入门Python3-set集合详解


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

关注公众号,了解更多!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM