当前位置:网站首页>集合

集合

2022-07-05 19:04:00 51CTO

集合的概念

1.Python语言提供的内置数据结构

2.与列表,字典一样属于可变类型的序列

3.集合是没有value的字典


集合的创建方式
1.直接花括号{}
      
      
print('---------字典的创建方式---------')
print('----1.{}----')
s = {'python' , 'world' , 652}
print(s)
  • 1.
  • 2.
  • 3.
  • 4.
2.使用内置函数set()
      
      
print('----2.内置函数set()-----')
s1 = set((range(6)))
print(s1)
print(set([3,4,56,7])) #列表->集合
print(set((652,654,777))) #元组->集合
print(set('python')) #字符串->集合
print(set({124,489,315}))
print(set())
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

集合的存储不是顺序存储的,按照hash表的方式存储

集合_集合的基本操作


3.空集合的创建方式

      
      
print('----空集合的创建----')
s = {}
print(s)
s1 = set()
print(s1)

s = {1 ,2 ,3 ,3 ,4 ,4 ,5}
print(s) #其中元素是不能重复的
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

集合_集合_02


集合的相关操作
1.集合的判断操作

    in / not in

      
      
print('--------------------集合的相关操作--------------------')
print('----判断操作----')
s = { 'python' , 'java' , 652}
#in
print('python' in s) #python在s中,True
print('cplusplus' in s) #cplusplus不在s中,False
#not
print( 'php' not in s) #php不在s中,True
print('java' not in s) #java在s中,False
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

集合_python_03


2.集合的新增操作

调用add()方法,一次添加一个元素

调用update()方法,至少添加一个元素

      
      
print('----2.新增操作-----')
s = {'python'}
print(s)

s.add('java')
print(s)

s.update({ 2022,2018,2015 }) #增加集合中的元素
print(s)
s.update([2,3,4]) #将列表中的元素加进去
print(s)
s.update((100,200,300)) #将元组中的元素加进去
print(s)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

集合_集合的数学操作_04


3.集合的删除操作

调用remove()方法,一次删除一个指定元素,如果指定元素不存在抛出KeyError

调用discard()方法,一次删除一个指定元素,如果指定元素不存在抛出异常

调用pop()方法,一次只删除一个任意元素

调用clear()方法,清空集合

      
      
print('----3.删除操作-----')
s = { 1,2,3,40,50,60,700,800,1000 }
print(s)

s.remove(1000)
print(s)

s.discard(700)
print(s)

s.pop() #不能指定参数,一般删除首元素
print(s)

s.clear()
print(s)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

集合_集合的基本操作_05


集合间的关系
1.两个集合是否相等
      
      
!= ==
print('----------------集合间的关系-----------------')
print('----是否相等-----')
s = {10,20,30,40}
s1 = {20,30,40,10}
print(s == s1)
print(s != s1)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

集合_集合的基本操作_06


2.一个集合是否是另一个集合的子集
      
      
issubset()

print('----子集----')
s = {1,2,3,4,7,8,9}
s1 = {1,2,4,7}
s2 = {3,5,7,8,9}
print(s1.issubset(s)) #s1 是 s 的子集
print(s2.issubset(s)) #s2 不是 s 的子集
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

集合_python_07


3.一个集合是否是另一个集合的超集
      
      
issuperset()

print('----超集-----')
s = {1,2,3,4,7,8,9}
s1 = {1,2,4,7}
s2 = {3,5,7,8,9}
print(s.issuperset(s1))
print(s.issuperset(s2))
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

集合_集合_08


4.两个集合没有超集
      
      
isdisjoint()
print('----没有交集----')
s = { 1,2,4,5}
s1 = {2,4,7}
s2 = {3,6,9}
print(s.isdisjoint(s1)) #没有交集为True
print(s.isdisjoint(s2)) #有交集为False
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

集合_集合_09


集合的数学操作(交集,并集,差集,对称差集)
      
      
print('-------------集合的数学操作----------')
s1 = { 10,20,30,40 }
s2 = { 20,30,40,50,60 }
#交集 两个集合共有的元素
print(s1.intersection(s2))
print(s1 & s2)
#并集 两个集合的元素加起来(其中重复的元素只要一个)
print(s1.union(s2))
print(s1 | s2)
#差集 其中一个集合减去共有的元素,剩下的就是差集
print(s1.difference(s2))
print(s1 - s2)
#对称差集 两个集合都减去共有的元素,剩下的是对称差集
print(s1.symmetric_difference((s2)))
print(s1 ^ s2)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
集合_集合_10


集合生成式
      
      
print('---集合生成式----')
s = { i*i for i in range(5) }
#将{}改为[]就是列表生成式
print(s)
print(type(s))
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

集合_集合的基本操作_11






原网站

版权声明
本文为[51CTO]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15500997/5444322