python中的集合

此生再无相见时 提交于 2019-12-10 22:17:29

集合定义

set():是一个无序不重复元素序列可以使用{}或者set()来创建集合
创建空的集合必须使用set(),因为{}是用来创建一个新的字典

创建

s = {1,2,3,2,3,4} 
print(s)
print(type(s))

#打印结果
{1, 2, 3, 4}   #去掉重复的数字
<class 'set'>   #类型为set集合

for循环,成员操作

s = {1,2,3}
print(1 in s)
print(1 not in s)
for i in s:
    print(i,end='')
print()

#打印结果
True
False
123

枚举

s = {1,2,3}
for i,v in enumerate(s):
    print('index: %s,value: %s' %(i,v))
#打印结果
index: 0,value: 1
index: 1,value: 2
index: 2,value: 3

添加
** 集合是一个可变的数据类型
添加顺序和在集合中存储的顺序不同**

s = {6, 7, 8, 9, 1, 2, 3}
print(s)
s.add(10)
s.add(0)
print(s)

#打印结果
{1, 2, 3, 6, 7, 8, 9}
{0, 1, 2, 3, 6, 7, 8, 9, 10}

增加多个元素

s = {6, 7, 8, 9, 1, 2, 3}
s.update({1, 2, 3, 4, 6, 7, 8, 10})
print(s)
#打印结果
{1, 2, 3, 4, 6, 7, 8, 9, 10}

删除

s = {6, 7, 8, 9, 1, 2, 3}
b = s.pop()
a = s.pop()
print(s)
print(a)
print(b)

#打印结果
{3, 6, 7, 8, 9}
2
1

交集,并集,差集,对等差分

s1 = {1, 2, 3}
s2 = {2, 3, 4}

# 并集
print('并集:', s1.union(s2))
print('并集:', s1 | s2)

# 交集
print('交集:', s1.intersection(s2))
print('交集:', s1 & s2)

# 差集
# s1和s2 的差集:s1中有哪些元素s2中没有
print('差集:', s1.difference(s2))
print('差集:', s1 - s2)

# s2和s1 的差集:s2中有哪些元素s1中没有
print('差集:', s2.difference(s1))
print('差集:', s2 - s1)

# 对等差分:并集-交集
print('对等差分:',s1.symmetric_difference(s2))
print('对等差分:',s1 ^ s2)

#打印结果
并集: {1, 2, 3, 4}
并集: {1, 2, 3, 4}
交集: {2, 3}
交集: {2, 3}
差集: {1}
差集: {1}
差集: {4}
差集: {4}
对等差分: {1, 4}
对等差分: {1, 4}



子集,超集,不相交

s3 = {'redhat','westos'}
s4 = {'redhat','westos','linux'}
# s3是否是s4的子集
print(s3.issubset(s4))
# s3是否是s4的超集
print(s3.issuperset(s4))
# 两个集合是否不相交
print(s3.isdisjoint(s4))

#打印结果
True
False
False
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!