python set 集合

余生长醉 提交于 2020-02-13 23:26:16

set集合的特性

1.元素必须是可hash的(不可变的)数据类型包括:str、int、 float、tuple

2.无序且不可重复的

3.set(这里面必须是可迭代的对象:str、list、dict的key、tuple)

 


 

创建集合方法

可变集合(unhash):set()

不可变集合(hash):forzenset()

 


 

访问集合

集合是无序的,无法使用索引,只能通过历遍和迭代器来取值,in、not in 来判断元素是否在集合中。

 


 

集合的方法

add 添加

a = ['alex',3,4]

s = set(a)

print(s)

s.add('xiaoma')

print(s)

output:

{'alex', 3, 4}

{'xiaoma', 'alex', 3, 4}

update 更新,会将一个序列的内容全都加到集合中去,重复的会去重a = ['alex',3,4]

s = set(a)
print(s)
s.update({'name':'xia','age':'90'})
print(s)
output:

{3, 4, 'alex'}
{3, 4, 'alex', 'age', 'name'}

------------------------------------------------

a = ['alex',3,4]
s = set(a)
print(s)
s.update('ops')
print(s)
output:

{3, 4, 'alex'}
{3, 4, 'p', 's', 'alex', 'o'}

----------------------------------------------------

a = ['alex',3,4]
s = set(a)
print(s)
s.update([1,2])
print(s)
output:

{3, 4, 'alex'}
{1, 2, 3, 4, 'alex'}

删除 remove()  pop() clear()  del

a = ['alex',3,4]
s = set(a)
print(s)
s.remove('alex')
print(s)

output:

{'alex', 3, 4}
{3, 4}

------------------------------------------------------

a = ['alex',3,4]
s = set(a)
print(s)
s.pop()    #随意删除的形式,有返回值
print(s)

output:

{3, 4, 'alex'}
{4, 'alex'}

---------------------------------------------------------

 s.clear()    #清空集合,和删除还是不太一样的

a = ['alex',3,4]
s = set(a)
print(s)
s.clear()
print(s)

output:

{3, 'alex', 4}
set()

-----------------------------------------------------------------

a = ['alex',3,4]
s = set(a)
print(s)
del s             #将s删除
print(s)         #报错


 

集合的重点用法 (*****)

  • 去重
  • 测试方式

a = set([1,2,3,4,5])
b = set([4,5,6,7,8])

print( a != b)    #等价判断两个集合是否相等 ,返回一个bool 。==   != 

 

print(a & b )     #交集 {4, 5}

print(a | b)       #并集 {1, 2, 3, 4, 5, 6, 7, 8}

print(a - b)       #差积 {1, 2, 3}    in  a   but not in b

print(b - a)       #差积 {6,7,8}      in  b   but not a 

print( b ^ a )     #对称 {1, 2, 3, 6, 7, 8}

print(a < b )      #子集 a 是否是b的子集

print(a > b )      #超集 a 是否是b的父集

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