list_1=[1,2,3,5,6,2,4,5]
list_1=set(list_1)
print(list_1,type(list_1))
7. 取交集(关系测试)
list_1=[1,2,3,5,6,2,4,5]
list_1=set(list_1)
list_2=set([1,2,8,4,5])
print(list_2)
print(list_1,type(list_1))
print(list_1.intersection(list_2))
print(list_1&list_2)#另一种表达
8. 取并集(关系测试)
print(list_1.union(list_2))
print(list_2|list_1)#另一种表达
9. 差集(关系测试)
print(list_1.difference(list_2))
print(list_1-list_2)#另一种表达
10. 判断一个集合是不是另一个集合的子集(关系测试)
print(list_3.issubset(list_1))
11. 判断一个集合是不是另一个集合的父集(关系测试)
print(list_1.issuperset(list_3))
12. 反向差集(关系测试)
把两个集合的交集去掉,把互相都没有的合到一起。
print(list_1.symmetric_difference(list_2))
print(list_1^list_2)#另一种表达
13. 其他
1) 判断两个集合是否有交集(关系测试)
print(list_1.isdisjoint(list_2))
2) 添加
list_2.add(999)#添加一项
List_2.update([999,888,777])##添加多项
print(list_2)
list_2.update(999)
3) 删除
List.pop()任意删
List.remove()任意删
4) 指定删除
list_2.discard(999)
print(list_2)
14. 文件操作(只能读或者只能写)
对文件操作流程
1)打开文件,得到文件句柄并赋值给一个变量
2)通过句柄对文件进行操作
3)关闭文件
15. 打开文件,读取文件
f=open("yesterday2",‘r‘,encoding="utf-8")
print(f.read())
16. 打开文件,写文件,这个是创建一个新文件
f=open("yesterday3",‘w‘,encoding="utf-8")
f.write("my name is mff")
17. 追加(不会覆盖以前的文件)但是还是不能读取文件的。append
f=open("yesterday3",‘a‘,encoding="utf-8")
f.write("what your name?")
18. 读取前五行
f=open("yesterday2",‘r‘,encoding="utf-8")
for i in range(5):
print(f.readline())
19. 把文件循环一遍,但是不打印第十行
for line in f.readlines():
print(line.strip())#strip是把空格和空行都去掉
for index,line in enumerate(f.readlines()):
if line==9:
print("----------------")
continue
print(line.strip())
另一种写法:
20. 一行行的读,并且内存中只保留一行
f=open("yesterday2",‘r‘,encoding="utf-8")
for line in f:
print(line)
21. 不读取第十行
f=open("yesterday2",‘r‘,encoding="utf-8")
count=0
for line in f:
if count==9:
print("----------------")
count+=1
continue
print(line)
count+=1
22. 查看文件句柄指针
f=open("yesterday2",‘r‘,encoding="utf-8")
print(f.tell())
结果:0
f=open("yesterday2",‘r‘,encoding="utf-8")
print(f.tell())
print(f.readline())
print(f.tell())
结果:31
Tell是按字符计数的。
23. 把句柄指针返回到开头
f.seek(0)
print(f.readline())
24. detach()函数
在编辑过程改变字符编码
25. 返回文件在内存中的编号
print(f.fileno())
26. 判断句柄指针是否可以移动,字符串,普通的二进制是可以移动的。
print(f.seekable())
27. 刷新
默认是等到缓存满了以后一次性刷入到硬盘中。内存读写速度要比硬盘快很多。
Flush()方法是实时刷到硬盘上
import sys
import time
for i in range(50):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.1)
显示的效果是一个个的刷到硬盘上了。
28. 截断
f=open("yesterday3",‘a‘,encoding="utf-8")#这里必须是a
f.truncate(10)
29. 既能读也能写(读写)(用的比较多)
f=open("yesterday2",‘r+‘,encoding="utf-8")
print(f.readline())
print(f.readline())
print(f.readline())
f.write("===================")
30. 写读:是指先创建一个文件,然后再执行程序(没太多用处)
f=open("yesterday2",‘w+‘,encoding="utf-8")
print(f.readline())
print(f.readline())
print(f.readline())
f.write("===================")
31. 追加写(a+)
32. 二进制格式读取文件,二进制是不能传输一个encoding文件的
f=open("yesterday2",‘rb‘)
用到二进制的地方:
(1)在网络传输中会用到,网络传输只能用二进制模式。
(2)在二进制文件中要用这种方式打开
f=open(“yesterday2”,‘wb’)
f.write(“hello binary\n”.encode())
f.close()
33. 二进制格式写文件
f=open("yesterday4",‘wb‘)
f.write("hello ,every".encode())
原文:https://www.cnblogs.com/mff-5830/p/10981801.html