1、集合定义
集合天生能去重,且与字典一样,无序。集合用大括号括起来,里面的元素之间用逗号分隔,要跟字典区分开。
集合定义方法:s=set() #定义一个空集合
s={'1','a','b','c','d','e','f'}#直接定义一个集合
s=set('123dfdreerewrewr')#将一个字符串转化为集合
s=set(['a','b','c','d'])#将一个list转化为集合
2、交集、并集、差集
取交集:& 或者intersection
print(s1 & s2) #取交集
print(s1.intersection(s2)) #取交集
取并集:| 或者union
print(s1|s2)
print(s1.union(s2))
取差集
print(s1-s2)#取差集,s1中去掉s2重复的部分
print(s1.difference(s2))#
对称差集
print(s1^s2)#去掉两个集合的交集,剩下的
print(a.symmetric_difference(b))
3、集合操作:增删改查
s.add('ss') #加元素
s.pop()#随机删一个
s.remove('ss')#指定删除哪个
s.update({1,2,3}) #把另外一个集合加进去
s.isdisjoint(s5)#如果没有交集的话返回true
4、文件操作
1、文件打开open
f=open(‘文件名’,''打开方式,'字符编码')
例:f = open('names','a+',encoding='utf-8'),python默认是gbk编码,open打开文件,如果不写打开方式,默认是r只读方式
文件打开有三种模式:读模式r,写模式w,追加模式a,另还有三种附加模式,加上"+" 表示可以同时读写某个文件
r,只读模式(默认)。
w,只写模式。不可读;不存在则创建;存在则删除内容;
#只要沾上了r,文件不存在的就会报错
#只要沾上了w,都会清空原来的内容
2、读取文件
f.read()#读文件,会将文件内容一次性全部读取出来
f.readline()#逐行读取,每次读一行,读取后文件句柄自动移到下一行,每次读取的内容都是一个字符串,如果有换行符,可以用字符串的strip方法;strip(' ')
f.readlines()#将文件所有内容按行放到list中,每个元素后都会自动加上 .例:['1212sf ', 'sdfdsffdfdfd ', '33434312121212121223']
f.seek(0)#句柄移动到文件最开始0位置,括号里填几,句柄就移动到第几个字符
f.tell()#记录指针的位置,可以和seek联合使用
比如:操作一会文件后用point=f.tell 保存文件当前位置,然后下次再次才做,可以用f.seek(point)将指针定位到上一次的位置,接着上一次的位置继续
注意:seek()可以移动指针,但是只限于读管用,如果文件是以a+的模式打开的,即便seek(0)指针移动到最开始位置,在写文件内容时,还是会在最后面写 例子: # 文件指针: # 用来记录文件到底读到哪里了 f = open('name','a+',encoding='utf-8')# a模式的文件指针是在末尾的 f.write('呵呵呵')#如果写的内容要换行显示,可以加上' ' :f.write('dfdf'+' '),读取文件时去掉 可以用字符串的strip(' ') f.seek(0) #移动文件指针到最前面 f.write('seek操作后,写的内容') #移动完文件指针之后,是只能读,写的时候还是在文件末尾写,此时也就是指针自动又到了末尾 print(f.read())#这时是读不出来内容的,因为指针在最后。如果没有上一行的f.write().则会读取文件的完整内容
循环读取文件,也可用for line in file,此时返回的是file的每一行,格式是字符串。可对line用字符串的相关函数继续操作。读完一行会释放一行的内存。
文件读写判断:
f.readable()#判断文件是否可读
3、关闭文件
f.close() 每次用open打开文件后,文件是不会自动关闭的,需要手动close下。这样有时候会忘记关闭,占内存。
with open('geci','a+') as f:#打开文件,文件不用时自动关闭
4、写文件
f.write();#往文件写内容
f.writelines(['111','222'])#往文件写多个内容,比如list,元祖,集合等
5、random模块
使用random模块必须先引入import random
print(random.randint(1,9999))#获取随机的1-9999之间的数字
random.shuffle(list)#打乱list的顺序,只能用于list