10.1、集合:
1、集合元素用大括号括起来,用逗号分割每个元素
2、集合的特点:
(1)集合元素的数据类型只能是不可变数据类型,"列表"、"字典"、"集合"、不能作为集合元素
(2)集合元素是不能重复的,如果有重复也会只保留一个
(3)集合是可变数据类型(可以增加,删除元素,无法修改元素)
(4)集合元素是无序排列的
(5)集合元素可以使用for循环进行遍历
10.2、集合的用法:
1、设置集合:
s=set('hello')
print(s)
s=set(['alex','alex','sb'])
print(s)
s={1,2,3,4,5,6}
2、往集合中添加元素:
s={1,2,3,4,5,6}
s.add('s')
s.add('3')
s.add(3)
print(s)
3、清空集合:
s={1,2,3,4,5,6}
s.clear()
print(s)
4、随机删除集合中的元素并返回删除的元素:
s={'lc',1,2,3,4,5,6}
v=s.pop()
print(v)
5、指定删除集合元素:
s={'lc',1,2,3,4,5,6}
s.remove('sb')
s.remove('hello')
#删除元素不存在会报错
s.discard('ch')
#删除元素不存在不会报错
print(s)
6、集合之间的运算:
#例:学校里的学生报读学校开设的两门课程
python_l = ['lc', 'lc1', 'lc1', 'lc']
linux_l = ['lc', 'lc1', 'lc2']
p_s = set(python_l)
l_s = set(linux_l)
print(p_s, l_s)
(1)求交集:
print("交集", p_s.intersection(l_s))
print("交集", p_s & l_s)
#在学校里两门课程都报的人
(2)求并集:
print("并集", p_s.union(l_s))
print("并集", p_s | l_s)
# 在学校里总共有多少人
(3)求差集:
print('差集', p_s - l_s)
print("差集", p_s.difference(l_s))
# 在学校里只报当前课程的人
print('差集', l_s - p_s)
print("差集", l_s.difference(p_s))
# 在学校里只报当前课程的人
(4)求交叉补集:
rint('交叉补集', p_s ^ l_s)
print('交叉补集', p_s.symmetric_difference(l_s))
#在学校了只报了一门课的人
7、判断子集和父集:
s1={1,2}
s2={1,2,3}
print(s1.issubset(s2))
#s1是s2的子集,返回True
print(s2.issubset(s1))
#s2不是是s1的子集,返回False
print(s2.issuperset(s1))
#s2是s1的父集,返回True
8、更新整个集合:
s1 = {1, 2}
s2 = {1, 2, 3}
s1.update(s2)
#更新多个值
print(s1)
9、不可变集合:
s = frozenset('hello')
print(s)
10、在不在乎列表元素排序的前提下使用set对列表进行去重:
names = ['lc', 'lc', 'lc1']
names = list(set(names))
print(names)