Python3集合

#!usr/bin/python
#coding=UTF-8
#Python3集合
''''''
'''
python集合(set)
    1、集合是一个无序的不重复元素序列。
    2、使用大括号{}set()函数创建集合。
    3、创建一个空集合必须使用set(),不能使用{},{}是用来创建一个空字典。
'''
set1 = set('abc123abc')
set2 = {'aa','bb','55','66'}
print(set1,set2)    #输出 {'2', '3', 'a', 'b', 'c', '1'} {'55', 'aa', 'bb', '66'}

'''
集合间的运算
    a-b     集合a中包含而集合b中不包含的元素(差集)
    a|b     集合a或集合b中包含的所有元素(并集)
    a&b     集合a和b中都包含的元素(交集)
    a^b     不同时包含于a和b的元素
'''
a = set('abcdefg')
b = set('abc123')
print(a-b)  #输出 {'e', 'g', 'f', 'd'}
print(a|b)  #输出 {'e', '2', 'f', '3', 'g', 'd', 'c', 'b', 'a', '1'}
print(a&b)  #输出 {'c', 'b', 'a'}
print(a^b)  #输出 {'f', '3', '1', 'e', '2', 'g', 'd'}

'''
    len(s)      计算集合元素个数
    x in s      判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False'''
set1 = set('abcdefg')
print(len(set1))    #输出 7
if 'a' in set1:     #输出 a存在于集合set1中
    print('a存在于集合set1中')
else:
    print('a不存在于集合set1中')

'''
集合基本操作
    s.add(x)        添加元素
        将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
    s.update(x)     修改当前集合
        可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。
        x (是字符串,列表,元组,字典) 可以有多个,用逗号分开。
    s.remove(x)     移除集合中的指定元素 x 。
        将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
    s.discard(x)    移除元素,如果元素不存在,不会发生错误。
    s.pop()     随机移除集合中的一个元素。
    s.clear()   清空集合(移除集合中的所有元素)
    s.copy()    拷贝一个集合
    s1.difference(s2)    返回集合的差集
        返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。
    s1.difference_update(s2)    移除两个集合中都存在的元素。
        直接在原来的集合中移除元素,没有返回值。
    s.intersection(s1,s2,...)   返回两个或更多集合中都包含的元素,即交集。
        返回一个新的集合。
    s.intersection_update(s1,s2,...)    获取两个或更多集合中都重叠的元素,即计算交集。
        在原始的集合上移除不重叠的元素。
    s.isdisjoint(s1)    判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
    s.issubset(s1)      判断集合(s)的所有元素是否都包含在指定集合(s1)中,如果是则返回 True,否则返回 False。
    s.issuperset(s1)    判断指定集合(s1)的所有元素是否都包含在原始的集合(s)中,如果是则返回 True,否则返回 False。
    s.symmetric_difference(s1)      返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。
        返回一个新的集合。
    s.symmetric_difference_update(s1)   移除当前集合(s)中在另外一个指定集合(s1)相同的元素,
                                        并将另外一个指定集合中不同的元素插入到当前集合中。
    s.union(s1,s2,...)  返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。
'''
'''
s.add() 添加元素
'''
s = {'a','b','c'}
s.add('a')
s.add('1')
print(s)    #输出 {'a', 'b', '1', 'c'}

'''
s.update(x) 修改当前集合
'''
s = {'22','33'}
s.update([1,2],[3,5])
print(s)    #输出     {1, 2, 3, 5, '33', '22'}
s.update('578')
print(s)    #输出     {1, 2, 3, 5, '8', '5', '22', '7', '33'}

s = {'22','33'}
s.update((6,7),(9,10))
print(s)    #输出     {6, 7, '22', 9, '33', 10}

s = {'22','33'}
s.update({'aa','bb'}, {'cc','aa'})
print(s)    #输出     {'bb', 'cc', '33', 'aa', '22'}

s = {'22','33'}
s.update('a','b')
print(s)    #输出     {'22', '33', 'b', 'a'}

s = {2,3}
#s.update(5,6,8) #输出 TypeError: 'int' object is not iterable    不能直接用int进行迭代

'''
s.remove(x)     移除集合中的指定元素 x 。
'''
s = {'22','33'}
s.remove('22')
#s.remove('22')  #输出 KeyError: '22'
print(s)        #输出 {'33'}

'''
s.discard(x)    移除集合中的指定元素 x 。
'''
s = {'22','33'}
s.discard('22')
s.discard('22')
print(s)        #输出 {'33'}

'''
s.pop()     随机移除集合中的一个元素。
'''
s = {'1','2','a'}
s.pop()
print(s)    #输出 {'2', 'a'}
s.pop()
s.pop()
print(s)    #输出 set()
#s.pop()     #输出 KeyError: 'pop from an empty set'

'''
s.clear()   清空集合(移除集合中的所有元素)
'''
s = {'a','b','c'}
s.clear()
print(s)    #输出 set()

'''
s.copy()    拷贝一个集合
'''
s = {'a','b','c'}
s1 = s.copy()
print(s,id(s))      #输出 {'a', 'b', 'c'} 2775834695712
print(s1,id(s1))    #输出 {'a', 'b', 'c'} 2775836919392

'''
s1.difference(s2)  返回集合的差集
'''
s1 = {'a','b','c'}
s2 = {'a','1','2'}
s3 = s1.difference(s2)
print(s1,s2,s3)    #输出  {'a', 'b', 'c'} {'a', '2', '1'} {'b', 'c'}

'''
s1.difference_update(s2)    移除s1中两个集合中都存在的元素。
'''
s1 = {'a','b','c'}
s2 = {'a','1','2'}
s1.difference_update(s2)
print(s1,s2)    #输出 {'c', 'b'} {'a', '1', '2'}

'''
s1.intersection(s2)     返回两个或更多集合中都包含的元素,即交集。
'''
s1 = {'a','b','c'}
s2 = {'a','1','2'}
s3 = s1.intersection(s2)
print(s1,s2,s3)    #输出 {'a', 'c', 'b'} {'2', 'a', '1'} {'a'}

'''
s1.intersection_update(s2)     在原始的集合s1上移除不重叠的元素。
'''
s1 = {'a','b','c'}
s2 = {'a','1','2'}
s1.intersection_update(s2)
print(s1,s2)    #输出 {'a'} {'2', '1', 'a'}

'''
s1.isdisjoint(s2)   判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False'''
s1 = {'a','b','c'}
s2 = {'a','1','2'}
s3 = {'1','2','3'}
print(s1.isdisjoint(s2))    #False
print(s1.isdisjoint(s3))    #True

'''
s1.issubset(s2)     判断集合(s)的所有元素是否都包含在指定集合(s1)中,如果是则返回 True,否则返回 False'''
s1 = {'a','b','c'}
s2 = {'a','1','2'}
s3 = {'a','b','c'}
print(s1.issubset(s2))    #False
print(s1.issubset(s3))    #True

'''
s1.isuperset(s2)    判断指定集合(s1)的所有元素是否都包含在原始的集合(s)中,如果是则返回 True,否则返回 False'''
s1 = {'a','b','c'}
s2 = {'a','1','2'}
s3 = {'a','b','c'}
print(s1.issuperset(s2))    #False
print(s1.issuperset(s3))    #True

'''
s1.symmetric_difference(s2)     返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。
'''
s1 = {'a','b','c'}
s2 = {'a','1','2'}
s3 = s1.symmetric_difference(s2)
print(s1,s2,s3)     #输出 {'a', 'c', 'b'} {'a', '1', '2'} {'1', 'c', '2', 'b'}

'''
s1.symmetric_difference_update(s2)  移除当前集合(s)中在另外一个指定集合(s1)相同的元素,
'''
s1 = {'a','b','c'}
s2 = {'a','1','2'}
s1.symmetric_difference_update(s2)
print(s1,s2)        #输出 {'2', 'b', 'c', '1'} {'2', '1', 'a'}

'''
s1.union(s2)    返回两个集合的并集
'''
s1 = {'a','b','c'}
s2 = {'a','1','2'}
s3 = {'5','6','2'}
s5 = s1.union(s2,s3)
print(s1,s2,s3,s5)  #输出 {'c', 'b', 'a'} {'2', 'a', '1'} {'2', '5', '6'} {'c', '2', '5', '6', '1', 'b', 'a'}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风之梦丽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值