集合 文件操作
---恢复内容开始---
集合
1.集合内的元素是不重复的
names = {'龙哥','海角','老狗','成绩','小江','小高'} names.add('龙哥') print(names)
2. 差集
val = names.difference(boys) #name中存在,boys中不存在的数据
names.difference_update(boys) #name中存在,boys中不存在的数据 如果后面有_update,就不用变量接收
names = {'龙哥','海角','老狗','成绩','小江','小高'} boys = ['小高','海娇','小狗'] val = names.difference(boys) # names中存在,boys中不存在数据 print(val) val = boys.difference(names) # boys中存在,names中不存在数据 print(val) boys.difference_update(names) # boys中存在,names中不存在数据 print(boys) names.difference_update(boys) # boys中存在,names中不存在数据 print(names)
3.对称差集 #去掉两个集合中相同的,把不同的组合成一个集合
val = names.symmetric_difference(boys)
names.symmetric_difference_update(boys)
names = {'龙哥','海角','老狗','成绩','小江','小高'} boys = {'小高','海娇','小狗'}
names.symmetric_difference(boys) print(val) names.symmetric_difference_update(boys) print(names)
4.集合中删除指定值
names = {'龙哥','海角','老狗','成绩','小江','小高'} names.discard('龙哥') print(names)
5.求交集 #两个列表相同的元素
val = names.intersection(boys)
names.intersection_update(boys)
names = {'龙哥','海角','老狗','成绩','小江','小高'} boys = {'小高','海娇','小狗'} val = names.intersection(boys) print(val) names.intersection_update(boys) print(names)
6.并集 两个集合组成一个新集合,重复的数据只保留一个(去重)
val = names.union(boys)
names = {'龙哥','海角','老狗','成绩','小江','小高'} boys = {'小高','海娇','小狗'} val = names.union(boys) print(val)
7.判断是否无交集
val = names.isdisjoint(boys)
names = {'龙哥','海角','老狗','成绩','小江','小高'} boys = {'海娇','小狗'} # 有交集:False # 无交集:True val = names.isdisjoint(boys) print(val)
8.子集父集
val = boys.issubset(names) #boys是否是names的子集
val = names.issuperset(boys) #names是否是boys的父集
names = {'龙哥','海角','老狗','成绩','小江','小高'}
boys = {'龙哥','老狗'}
# 是否是子集
val = boys.issubset(names) #boys是否是names的子集
print(val)
# 是否是父集
val = names.issuperset(boys) #names是否是boys的父集
print(val)
9.删除集合元素
.pop() 随机删除一个元素并返回值,括号内不能加索引,因为集合是无序的
.remove('老狗') 删除指定元素
.discard('老狗1') 删除括号内的子序列
names = {'龙哥','海角','老狗','成绩','小江','小高'} v = names.pop() print(v) names.remove('老狗') print(names) names.discard('老狗1') print(names)
10.更新
names.update(boys) #用boys更新names
names = {'龙哥','海角','老狗','成绩','小江','小高'} boys = ['龙哥1','老狗1'] names.update(boys) print(names)
11.循环,转换 集合也可以for循环 set() 把列表转换为集合
# names = {'龙哥','海角','老狗','成绩','小江','小高'}
# for item in names:
# print(item)
#
# print(len(names))
# names = ['龙哥','老狗','海角','老狗','成绩','小江','小高','小江']
# val = set(names)
# print(val)
文件操作
周军豪.txt
操作文件三要素:
1. 路径:D:\周军豪.txt
2. 编码:utf-8
3. 模式:
- rb
- r
- r+ *****#重点
- r+b
- wb
- w
- w+
- w+b
- ab
- a
- a+
- a+b
功能:
obj = open(文件路径,encoding=utf-8,mode='rb')
obj.read()
obj.write()
obj.seek()
obj.tell()
obj.close()
obj.flush()
# obj.readline() #读取一行
for line in obj: # 等价于 py2 obj.xreadlines() 每次打印一行
print(line)
obj.readlines()
PS: 打开文件后,记着关闭文件
obj = open(文件路径,mode='rb')
xxxx
obj.close()
自动关闭
with open(文件路径,mode='rb') as obj:
obj.read()
# 代码执行完毕后,自动关闭文件
只读:
- open(文件路径,mode='rb')
- open(文件路径,mode='r',encoding='utf-8')
示例:
obj = open('D:\美女模特空姐护士联系方式.txt',encoding='utf-8',mode='r')
content = obj.read()
obj.close()
print(content)
obj = open('D:\美女模特空姐护士联系方式.txt',mode='rb')
content = obj.read()
obj.close()
print(content)
只写:
- open(文件路径,mode='wb')
- open(文件路径,mode='w',encoding='utf-8')
示例:
# obj = open('美女.txt',mode='w',encoding='utf-8')
# obj.write("海角-贾敏")
# obj.close()
# obj = open('美女.txt',mode='wb')
# obj.write("海角-贾敏22222".encode('utf-8'))
# obj.close()
只追加:
- open(文件路径,mode='ab')
- open(文件路径,mode='a',encoding='utf-8')
# obj = open('美女.txt',mode='a',encoding='utf-8')
# obj.write("小红")
# obj.close()
# obj = open('美女.txt',mode='ab')
# obj.write("龙哥".encode('utf-8'))
# obj.close()
既然选择了远方,便是风雨兼程...