集合 文件操作

---恢复内容开始---

集合

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()

 

 

posted @ 2017-08-24 19:56  选择远方,风雨兼程。  阅读(143)  评论(0编辑  收藏  举报