python ==》 集合

集合:

  定义:

    由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key值。

    集合的目的:将不同的值存放到一起,不同的集合间用来做关系运算。

定义集合
字典是可变类型 列表也是可变类型 所以 集合里面不能有字典和列表的存在
集合:可以包含多个元素,用逗号分割开,每一个元素都必须是不可变类型。
集合遵循的两个原则:1. 没有重复的元素 2.无序 3.每个元素必须是不可变类型
取值  因为无序  ,所以  并不能用下标取值 (即索引取值)。
从集合里面取值,也很少有这种需求,集合主要做: 关系运算。

优先掌握
in 和 not in
pythons = {'zxc','asd','qwe','zbk'}
print('zzz'in pythons)

|并集:所有学员 #从两个 字典里做关系运算。
pythons = {'zxc','asd','qwe','zbk'}
linuxs = {'zxc','zzz','aaa'}
s =pythons | linuxs
print(s)
set1 ={1,2,3,4,5}
set2 ={1,2,3}

内置地方法
print(pythons.union(linuxs)) #并集
print(pythons.intersection(linuxs)) #交集
print(pythons.difference(linuxs)) #差集
print(linuxs.difference(pythons)) #差集
print(pythons.symmetric_difference(linuxs)) #对称差集
print(set1.issubset(set2)) #set1 是set2 的子集吗?

掌握
pythons = {'zxc','asd','qwe','zbk'}
linuxs = {'zxc','zzz','aaa'}
linuxs.add('qqq') #set类型的集合是可变类型 ,只能添加可变类型
print(linuxs)


res =linuxs.pop() #删除要有个返回值 不用指定参数,随机删除
print(res)

linuxs.remove('zxc') #指名道姓的删除 特点:元素不存在报错 没有返回值 单纯的删除
print(linuxs)

linuxs.discard('zxc11111') #指名道姓的删除 特点:元素不存在不报错 没有返回值 单纯的删除
print(linuxs)


了解
linuxs = {'zxc','zzz','aaa'}
linuxs.update({'zbk','jkl','zxc'})#更新 没有就 加上
print(linuxs)

linuxs.clear() #清除
print(linuxs)

s=linuxs.copy() #复制
print(s)

set1 = {1,2,3}
set2 = {3,4,5}
print(set1.difference_update(set2) ) #求差集 并且更新
print(set1)



&交集 : 求二者共同的部分。
pythons = {'zxc','asd','qwe','zbk'}
linuxs = {'zxc','zzz','aaa'}
s = pythons & linuxs
print(s)

-差集: 只报名 pythons 。
pythons = {'zxc','asd','qwe','zbk'}
linuxs = {'zxc','zzz','aaa'}
s = pythons - linuxs
print(s)
print(linuxs - pythons)


^对称差集:没有同时报名python和linuxs。
pythons = {'zxc','asd','qwe','zbk'}
linuxs = {'zxc','zzz','aaa'}
s = pythons ^ linuxs
print(s)


> < >= <= 包含关系
set1 ={1,2,3,4,5}
set2 ={1,2,3}
print(set1>set2)


for 取值 无序
pythons = {'zxc','asd','qwe','zbk'}
linuxs = {'zxc','zzz','aaa'}
for i in pythons:
print(i)


解压
pythons,*_ = {'zxc','asd','qwe','zbk'}
linuxs = {'zxc','zzz','aaa'}
print(pythons)

in: 字符串,列表,元组,字典,集合
for:字符串,列表,元组,字典,集合
解压:字符串,列表,元组,字典,集合

去重
msg = 'hello'
msg = [1,2,'zxc','asd']
s = set(msg)
print(s)

'''
数据类型的总结:
数字
字符串
元组
字典

按照存值个数:
1个:数字,字符串
多个: 列表,元组,字典

按照可变不可变:
可变:列表 字典
不可变:数字 字符串 元组

按照访问方式:
num=1
数字只能有名字访问
s = zxc'

直接访问: 数字
索引: 字符串,列表,元组 ===》 序列类型
映射: 字典 (key)




'''
原文地址:https://www.cnblogs.com/zhongbokun/p/7217728.html