集合
1 list1 = {"1","2","5","10","13","141414"} 2 3 list2 = {"2","10","11","17","1313"} 4 5 list1.intersection(list2) #交集 6 7 list1 & list2 # 交集运算符 8 9 list1.union(list2) #并集 10 11 list1 | list2 #并集运算符 12 13 list1.difference(list2) #差集 14 15 list1 - list2 #差集运算符 16 17 list1.symmetric_difference(list2) #对称差集 18 19 list1 ^ list2 #对称差集运算符 20 21 list1.intersection(list2).issubset(list1) #子集,前为后的子集 22 23 list1.issuperset(list1.intersection(list2)) #父集 24 25 {"1","2","3"}.isdisjoint({"4","5","6"}) #关系测试,如果没有交集,输出TRUE 26 27 list1.add("OXMLG") #添加 28 29 list1.update(["123","456"]) #添加多项 30 31 list1.remove("1") #删除,不存在会报错 32 33 list1.discard(("13")) #删除,不存在不会报 34 错 35 list1.pop() #随机删除
文件操作
1 open("文件.txt","r",encoding="utf-8") #只读 2 3 open("文件2.txt","w",encoding="utf-8") #写文件,会覆盖源文件!!! 4 5 open ("文件2.txt","a",encoding="utf-8") #追加 不覆盖原文件只能写不能读 6 7 open("文件2.txt","r+",encoding="utf-8") #读写 8 9 open("文件4.txt","w+",encoding="utf-8") #写读 10 11 open("文件5.txt","rb",encoding="utf-8") #二进制 12 13 for i,v in enumerate(a.readlines()) 14 ''' i 为下标 , v为内容 ''' 15 16 a.tell() # 当前位置 17 18 a.seek(0) # 返回某个位置 19 20 a.encoding #文件的编码 21 22 a.flush #刷新,直接把内存刷新到文件 23 24 sys.stdout.flush() #不使用缓存区,直接刷新 25 26 f.truncate(10) #截断,从某位置开始到第X字符,其余全删掉,可配合seek使用
1 for i in a: 2 if "我是邢韬6" in i: 3 i=i.replace("我是邢韬6","我是邢韬666666666666") #替换 4 b.write(i)
字符编码
1 sys.getdefaultencoding() 2 '''检查默认字符编码,注意是文件编码,不是文件内字符串的编码''' 3 4 a.decode("utf-8").encode("gbk") 5 '''先从utf-8解码为unicode,再编码为gbk'''
递归
递归特性
1 递归必须有一个明确的结束条件
2 每次进入下一次循环时,问题的规模比上一次必须有所减小
3 递归层数过多会导致栈溢出