# Python学习
# 文件名称: create.py
# 学习时间: 2022/7/5 22:06
#列表生成式
list1=[ i*i for i in range(9)]
print(list1)
#集合生成式
list2={ i*i for i in range(9)}
print(list2)
'''
数据结构 是否可变 是否重复 是否有序 定义符号
列表(list) 可变 可重复 有序 []
元组(tuple) 不可变 可重复 有序 ()
字典(dict) 可变 key不可,value可 无序 {key:value}
集合(set) 可变 不可重复 无序 {}
'''
# Python学习
# 文件名称: data_operation.py
# 学习时间: 2022/7/5 17:59
# 集合的数学操作
s1={10,20,30,40}
s2={20,30,40,50,60}
# (1) 交集
print(s1.intersection(s2))
print(s1 & s2) # intersection与&等价
# (2) 并集
print(s1.union(s2))
print(s1 | s2)
# 观察s1与s2是否发生变化
print(s1,s2)
# (3) 差集
print(s1.difference(s2))
print(s1-s2)
# (4) 对称差集
print(s1.symmetric_difference(s2))
print(s1 ^ s2)
# Python学习
# 学习时间: 2022/7/3 18:29
# 集合
# Python语言提供的内置数据结构
# 与列表、字典一样都属于可变类型的序列
# 集合是没有value的字典
s={'Python','Hello',89}
s1=set(range(6))
print(s)
print(s1)
s_2=[3,4,5334,56]
s2=set([3,4,54,56])
print(type(s_2))
print(s2)
# 集合: 得出集合中的元素是无序的
print(set((3,4,43,435)))
print(set('Python'))
print(set({124,3,4,4,5}))
# 空集合用 set() 表示 而不是{}
print(set())
# 集合遍历仍用for in
# Python学习
# 学习时间: 2022/7/5 15:26
s={10,20,30,455,682}
# 集合元素的判断操作
'''集合元素的判断操作'''
# in or not in
print(10 in s)
print(45 in s)
print(455 not in s)
print(66 not in s)
# 集合元素的新增操作
'''集合元素的新增操作'''
# 1.调用add()方法,一次添加一个元素
s.add(80)
print(s)
# 2.调用update()方法至少添加一个元素
s.update({200,400,900}) # +集合
print(s)
s.update([11,22,55]) # +列表
s.update((64,81,100)) # +元组
print(s)
# 集合元素的删除操作
'''集合元素的删除操作'''
# 1.调用remove()方法,一次删除一个指定元素,如果指定的元素不存在抛出KeyError
s.remove(100)
print(s)
# s.remove(500)
# print(s)
# 2.调用discard()方法,一次指定删除一个元素,如果指定的元素不存在不抛出异常
s.discard(900)
print(s)
s.discard(500) # 无该元素不报错
print(s)
# 3.调用pop()方法,一次只删除一个任意元素
s.pop()
s.pop() # 会删除集合的第一个元素,但集合的存储与输入的顺序无关
print(s)
# 4.调用clear()方法,清空集合
s.clear()
print(s)
# Python学习
# 学习时间: 2022/7/5 17:30
s1={10,20,30,40}
s2={10}
s3={10,20,30,40,50}
s4={30,40,50}
s5={33,66}
'''判断两个集合是否相等通过==或!=进行判断'''
print(s1==s1)
print(s1==s2)
print(s1!=s2)
'''一个集合是否是另一个集合的子集'''
# 通过调用方法 issubset()判断
print(s1.issubset(s2))
print(s2.issubset(s1))
'''一个集合是否是另一个集合的超集'''
# 调用方法issuperset()进行判断
print(s1.issuperset(s3))
print(s3.issuperset(s1))
'''判断两个集合是否有交集'''
# 通过调用方法isdisjoint()判断
print(s1.isdisjoint(s3))
print(s3.isdisjoint(s5))