集合笔记

# 集合
# 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']

 

posted @ 2018-04-12 14:45  重铸根基  阅读(263)  评论(0编辑  收藏  举报