python中的集合

集合

集合是一个无序,不重复元素的序列(自动去重)

set1 = set()#定义集合
print(type(set1))
set2 = {'abc','abc','cd','abd','ac','dvd'}#定义集合,不能为空,否则定义的是字典
print(type(set2))
print(set2)

输出:
<class 'set'>
<class 'set'>
{'abc', 'dvd', 'abd', 'ac', 'cd'}

集合中的运算

#'|'取两个集合中的所有元素
set2 = {'abc','abc','cd','abd','ac','dvd'}
set1 = {'abcd','abcf','cd','abd','acv','dvd'}


print(set2|set1)#合集

输出:
{'abc', 'cd', 'abcf', 'abcd', 'acv', 'ac', 'abd', 'dvd'}

 

#'-'
set2 = {'abc','abc','cd','abd','ac','dvd'}
set1 = {'abcd','abcf','cd','abd','acv','dvd'}
print(set1-set2)#集合中set1包含而set2中不包含的元素
print(set2-set1)#集合中set2包含而set1中不包含的元素

输出:
{'abcf', 'acv', 'abcd'}
{'abc', 'ac'}
#'&'取交集
set2 = {'abc','abc','cd','abd','ac','dvd'}

set1 = {'abcd','abcf','cd','abd','acv','dvd'}

print(set1&set2)#取两个集合同时都包含的元素,交集

输出:
{'abd', 'dvd', 'cd'}
#'^'取两个集合中不同时含有的元素
set2 = {'abc','abc','cd','abd','ac','dvd'}
set1 = {'abcd','abcf','cd','abd','acv','dvd'}
print(set1^set2)#取两个集合不同时包含的元素
输出:
{'abc', 'ac', 'acv', 'abcd', 'abcf'}

集合中的基本操作,添加,如果添加的元素已经存在,则不进行任何操作

set1 = {'abcd','abcf','cd','abd','acv','dvd'}
set1.add('adf')#添加'adf'
set1.update({'abcde','cde'})#可以添加多个元素
print(set1)

输出:
{'adf', 'abcde', 'abd', 'cde', 'acv', 'abcd', 'dvd', 'cd', 'abcf'}

移除元素:

set1 = {'abcd','abcf','cd','abd','acv','dvd'}
set1.remove('abcd')#移除元素
# set1.remove('abcda')#移除不存在的元素,会报错
set1.discard('abcda')#移除不存在的元素,不会报错
print(set1)

输出:
{'cd', 'abcf', 'abd', 'acv', 'dvd'}
set1.pop()#随机删除一个元素

清空集合,计算集合元素个数:

set1 = {'abcd','abcf','cd','abd','acv','dvd'}
print(len(set1))#返回集合的长度
set1.clear()#清空集合
print(set1)#输出为空集合
输出: 6 set()

 补充写法:

s1={1,2,3,4,5}
s2={2,3,4,5,6}
s3={4,5,6,7,8}
# s1.update(s2)#把s2 合到s1中
print('取并集方式1',s1.union(s2))
print('取并集方式2',s1|s2)
print('取交集方式1',s3.intersection(s1))
print('取交集方式2',s1&s3)
#差集取运算中前面的集合(下面实例为s1在前面)中存在而后面集合(下面实例为s2在后面)中不存在的元素
print('取差集方式1',s1-s2)
print('取差集方式2',s1.difference(s2))
#对称差集,两个集合中不同时含有的元素
print('取对称差集方式1',s1^s2)
print('取对称差集方式2',s1.symmetric_difference(s2))

 

posted @ 2019-09-16 13:58  小马哥007  阅读(319)  评论(0编辑  收藏  举报