'''
集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。
{}
'''
set1 = set({1,2,3})
# set2 = {1,2,3,[2,3],{'name':'alex'}} # 错的
print(set1) # {1, 2, 3}
# print(set2)
set1 = {'alex','wusir','ritian','egon','barry',}
#增
# add
set1.add('女神')
print(set1) # {'alex', 'wusir', 'egon', '女神', 'ritian', 'barry'}
#update
set1.update('abc')
print(set1) # {'alex', 'wusir', 'b', 'egon', 'c', '女神', 'ritian', 'a', 'barry'}
#删除
set1.pop() # 随机删除
print(set1.pop()) # 有返回值 wusir
print(set1) # {'b', 'egon', 'c', '女神', 'ritian', 'a', 'barry'}
# set1.remove('alex') # 按元素
# print(set1)
# 空字典 - {} 空集合 - set()
# set1.clear()
print(set1) # set()
#del set1
# print(set1)
#查
for i in set1:
print(i)
'''
alex
ritian
barry
b
c
wusir
女神
'''
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
set3 = set1 & set2 # 交集
print(set3) # {4, 5}
print(set1.intersection(set2)) # {4, 5}
'''
描述
intersection() 方法用于返回两个或更多集合中都包含的元素,即交集。
语法
intersection() 方法语法:
set.intersection(set1, set2 ... etc)
参数
set1 -- 必需,要查找相同元素的集合
set2 -- 可选,其他要查找相同元素的集合,可以多个,多个使用逗号 , 隔开
返回值
返回一个新的集合。
'''
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7,8}
print(set2.union(set1)) # {1, 2, 3, 4, 5, 6, 7}
'''
描述
union() 方法返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。
语法
union() 方法语法:
set.union(set1, set2...)
参数
set1 -- 必需,合并的目标集合
set2 -- 可选,其他要合并的集合,可以多个,多个使用逗号 , 隔开。
返回值
返回一个新集合。
'''
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 ^ set2) # {1, 2, 3, 6, 7, 8}
print(set1.symmetric_difference(set2)) # {1, 2, 3, 6, 7, 8}
'''
描述
symmetric_difference() 方法返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。
语法
symmetric_difference() 方法语法:
set.symmetric_difference(set)
参数
set -- 集合
返回值
返回一个新的集合。
'''
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 - set2) # {1, 2, 3}
#set1独有的
print(set1.difference(set2)) # {1, 2, 3}
'''
描述
difference() 方法用于返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。
语法
difference() 方法语法:
set.difference(set)
参数
set -- 必需,用于计算差集的集合
返回值
返回一个新的集合。
'''
set1 = {1,2,3,}
set2 = {1,2,3,4,5,6}
print(set1 < set2) # True
print(set1.issubset(set2)) # 这两个相同,都是说明set1是set2子集。 # True
print(set2 > set1) # True
print(set2.issuperset(set1)) # 这两个相同,都是说明set2是set1超集。 # True
#去重
li = [1,2,33,33,2,1,4,5,6,6]
set1 = set(li)
print(set1) # {1, 2, 33, 4, 5, 6}
li = list(set1)
print(li) # [1, 2, 33, 4, 5, 6]
s1 = {1,2,3}
print(s1,type(s1)) # {1, 2, 3} <class 'set'>
s = frozenset('barry')
print(s,type(s))
for i in s:
print(i)
'''
描述
frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
语法
frozenset() 函数语法:
class frozenset([iterable])
参数
iterable -- 可迭代的对象,比如列表、字典、元组等等。
返回值
返回新的 frozenset 对象,如果不提供任何参数,默认会生成空集合。
'''