学习内容:
1、集合
2、文件操作
3、字符转编码操作
4、函数介绍
5、作用域、局部与全局变量
6、递归
7、函数式编程介绍
8、高阶函数
1、集合
集合是Python常用的数据类型,集合也是无序的。
特性:去重复
关系测试
格式:set([])
去重复,例如:
a= set([1,2,2,3,3,4,4,]) #集合具有天生去重复的特性!集合的格式:set([])print (a)
打印结果:
C:\Users\hca006\AppData\Local\Programs\Python\Python36\python.exe "D:/python app/var/day3/集合.py"{1, 2, 3, 4}Process finished with exit code 0
关系测试:
交集(intersection)-变量可无前后顺序
a= set([1,2,2,3,3,4,4,]) #集合具有天生去重复的特性!集合的格式:set([])b= set([3,4,5,6,7])print(a.intersection(b)) #intersection 交集print(a&b) #intersection 交集 符号&表示法! 打印结果: {3, 4} {3, 4}
并集(union)-变量可无前后顺序
print(a|b) # 并集,管道符表示(|)print(b|a) # 可无前后顺序print(a.union(b)) # 并集,union打印结果:{1, 2, 3, 4, 5, 6, 7}{1, 2, 3, 4, 5, 6, 7}{1, 2, 3, 4, 5, 6, 7}
差集(difference)-变量有前后顺序,in list1 not in list2
print(a.difference(b)) # 差集,去掉交集后的值,有前后顺序print(b.difference(a)) # 差集,去掉交集后的值,有前后顺序print(a-b) #减号表示(-)打印结果:{1, 2}{5, 6, 7}{1, 2}
子集(issubset)和父集(issuperset) 返回结果为布尔值。
a= set([1,2,2,3,3,4,4,]) #集合具有天生去重复的特性!集合的格式:set([])b= set([3,4,5,6,7])list=[1,2,3]c=set(list)print(c.issubset(a)) # 子集print (c<=a) # 子集的符号表示法print(a.issuperset(c)) # 父集print(a>=c) # 父集的符号表示法打印结果:TrueTrueTrueTrue
对称差集(symmetric_difference)-变量无前后顺序
a= set([1,2,2,3,3,4,4,]) #集合具有天生去重复的特性!集合的格式:set([])b= set([3,4,5,6,7])list=[1,2,3]c=set(list)print(a ^ b) # 对称差集 用符号^表示print(b ^ a) # 对称差集 无前后顺序print(a.symmetric_difference(b)) # 对称差集(理解为去掉交集后的并集)打印结果:{1, 2, 5, 6, 7}{1, 2, 5, 6, 7}{1, 2, 5, 6, 7}
isdisjoint-判断是否有交集,返回布尔值
print(c.isdisjoint(b))
# 判断两个集合有没有交集,有交集返回False,无交集返回True.
打印结果: False
集合的添加删除
c.add(4) # 添加1项c.update(['wjy',6,9]) # 添加多项,注意多项是列表的形式,要用[]括起来。c.update(b) # 也可以直接添加一个集合到别一个集合。print(c)b.remove(7) #只能删除1项,指定删,没有会报错。print(len(c)) #长度print(c)print('wjy' in c) # 判断X是否是S的成员,返回布尔值print('wjy'not in c) # 判断X是否不是s的成员,字符串,列表,字典,集合都用同一种方法表示。c.pop() # 任意删,由于集合无序,所以这里跟下标会报错。列表用这种方法可以删除对应下标的值。print(c)print(c.discard('beiyou')) #指定删,没有不报错也不返回信息,打印结果为None.
打印结果:
{1, 2, 3, 4, 5, 6, 7, 9, 'wjy'}9{ 1, 2, 3, 4, 5, 6, 7, 9, 'wjy'}TrueFalse{ 2, 3, 4, 5, 6, 7, 9, 'wjy'}None
2、文件操作