本文是学习齐伟老师的《python全栈工程师》课程的笔记,欢迎学习交流。同时感谢齐老师的精彩传授!
一、课程目标
- 如何创建集合
- 集合的方法
二、详情解读
1.创建集合:
集合的特点是无序性、互异性、确定性;集合分为可变集合和不可变集合。
- 无序性:
- 互异性:
- 确定性:(因为列表是可变对象,故不能作为集合的元素)
创建可变集合用set(),创建不可变集合用frozonset()
2.集合的方法:
- 增加元素的方法:add()、update()
- 删除元素:pop()、remove()、discard()、clear()
remove()删除不存在的元素时会报错,而discard()不会
3.集合关系和运算: - 元素与集合的关系:用 in 判断元素是否在集合中
- 集合与集合的关系:
a.issuperset(b) 判断a是否是b的超集(即a是否包含b)
b.issubset(a) 判断b是否是a的子集
- 集合间的运算:并集(a|b)、交集(a&b)、差集(a-b)
4.浅拷贝和深拷贝: - 容器:列表、元组、字典、(可变)集合
- 列表、字典、集合:
浅拷贝:只拷贝最外层的容器,里面的容器不拷贝
深拷贝:import copy
三、课程小结
- 学习了如何创建集合
- 学习了集合的方法和运算
- 学习了容器的深拷贝和浅拷贝
四、作业
- 有如下技术栈名称集合:skills={ ‘Python’, ‘R’, ‘SQL’, ‘Git’, ‘Tableau’, ‘SAS’}。假设自己的技术是:mySkills ={‘Python’, ‘R’}
– 判断自己所掌握的技术是否在上述技术栈范围之内
小编参考:
skills = {'Python', 'R', 'SQL', 'Git', 'Tableau', 'SAS' }
mySkills = {'Python', 'R'}
is_in = mySkills & skills
print(is_in)
运行效果图: