集合笔记
# 集合 # 1不同元素组成 # 2无序 # 3集合中元素必须不可变类型 s = {1,2,3,4,5,6,6,6,6,6,6} print(type(s)) print("集合由不同元素组成,重复去除:",s) s =set('hello')#使用set来形成一个集合一个, print("使用set来形成一个集合一个:",s) s = set(['sdfgdf','python','python']) #集合由列表中的元素个数组成 print("集合由列表中的元素个数组成:",s) # 添加元素 s = {1,2,3,4,5,6,} s.add('3') s.add(4)#集合中已经有4所以只保存一个 s.add('s') print("添加元素:",s) # 清空元素 s = {1,2,3,4,5,6,} s.clear() print("清空元素:",s) # 浅复制 s = {1,2,3,4,5,6,} s1 = s.copy() print("浅复制:",s1) # 随机删除pop() s = {1,2,3,4,5,6,'we','wer'} # s.pop() # s.remove('we')#指定删除remove(),删除不存在的元素会报错 s.discard("sgfsdgsg")#删除不存在的元素不会报错 print("随机删除pop():",s) # 如何使用集合求交集,并集和差集 python_2 = ["qwe","wer","ert"] linux_2 = ["qwe","wer","asdf"] p_s = set(python_2)#列表改成集合后是无序的 l_s = set(linux_2) # 如何使用集合求交集 print('交集',p_s,l_s) print('交集',p_s.intersection(l_s)) #p_s.intersection(l_s)表示p_s和l_s的交集 print('交集',p_s&l_s)#也是交集 # 如何使用集合求并集 print('并集',p_s.union(l_s)) print('并集',p_s|l_s) # 求差集 print('差集',p_s.difference(l_s))#p_s中不和l_s重复的部分 print('差集',p_s-l_s)#p_s中不和l_s重复的部分 print('差集',l_s-p_s)#l_s中不和p_s重复的部分 # 交叉补集,去除重复 print('交叉补集',p_s.symmetric_difference(l_s)) print('交叉补集',p_s^l_s) s1 = {1,2} s2 = {4,5,6} print("没有交集返回布尔值:",s1.isdisjoint(s2)) s1 = {1,2} s2 = {1,2,4,5,6} print("s1是s2的子集:",s1.issubset(s2)) print("s1是s2的子集,所以Flase:",s2.issubset(s1)) print("s1是s2的父集:",s2.issuperset(s1)) s1 = {1,2} s2 = {1,2,4,5,6} s1.update(s2) s1.add(7)#更新一个值 s1.union(s2)#不更新 print("update更新多个值:",s1) s =frozenset("hello") print("无法改变集合:",s) s = ['pyhton','java','java'] s = list(set(s)) print("去除重复顺序改变:",s)
以上实例的结果
<class 'set'> 集合由不同元素组成,重复去除: {1, 2, 3, 4, 5, 6} 使用set来形成一个集合一个: {'o', 'h', 'e', 'l'} 集合由列表中的元素个数组成: {'python', 'sdfgdf'} 添加元素: {'3', 1, 2, 3, 4, 5, 6, 's'} 清空元素: set() 浅复制: {1, 2, 3, 4, 5, 6} 随机删除pop(): {1, 2, 3, 4, 5, 6, 'wer', 'we'} 交集 {'qwe', 'wer', 'ert'} {'qwe', 'wer', 'asdf'} 交集 {'qwe', 'wer'} 交集 {'qwe', 'wer'} 并集 {'qwe', 'wer', 'ert', 'asdf'} 并集 {'qwe', 'wer', 'ert', 'asdf'} 差集 {'ert'} 差集 {'ert'} 差集 {'asdf'} 交叉补集 {'ert', 'asdf'} 交叉补集 {'ert', 'asdf'} 没有交集返回布尔值: True s1是s2的子集: True s1是s2的子集,所以Flase: False s1是s2的父集: True update更新多个值: {1, 2, 4, 5, 6, 7} 无法改变集合: frozenset({'o', 'h', 'e', 'l'}) 去除重复顺序改变: ['java', 'pyhton']