一、集合
集合特性:
1、集合是无序、且不重复的
2、集合里面的元素必须是可哈希的(即不可变的数据类型int、str、tuple),但是集合本身是不可哈希的
3、集合里面的元素不能更改
4、集合可以求交集、并集、反交集、差集
去重:
1, 用算法去做.
2, 转换成集合.在转换过来.
一、集合的创建
set1 = set({1,2,'alex'})
set1 = {'alex','wusir','ritian','egon','barry'}
二、集合增
set1 = {'alex','wusir','ritian','egon','barry'}
add 添加一个元素
set1.add('景女神')
print(set1)
#update 迭代着添加
set1.update('abc')
set1.update([1,2,3])
print(set1)-----{1, 2, 3, 'b', 'ritian', 'c', 'barry', 'alex', 'a', 'egon', 'wusir'}
三、集合删
按照元素去删除
set1.remove('ritian')
print(set1)
随机删除 pop
set1.pop()
print(set1)
清空集合 clear()
set1.clear()
print(set1)---set()
删除 集合
del set1
print(set1)---报错
四、集合查
查:----使用for循环
for i in set1:
print(i)
二、集合的其他操作
2、1交集 ( &、 intersection)
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
set3 = set1 & set2
print(set3)
print(set1.intersection(set2))
输出{4,5}
2、 2 并集 ( | 、 union )
print(set1 | set2) print(set1.union(set2))
输出{1, 2, 3, 4, 5, 6, 7, 8}
2、 3 反交集 (^ 或者 symmetric_difference)
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 ^ set2) # {1, 2, 3, 6, 7, 8}
print(set1.symmetric_difference(set2)) # {1, 2, 3, 6, 7, 8}
2 、4 差集 (— 或者 difference)
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 - set2) # {1, 2, 3}
print(set1.difference(set2)) # {1, 2, 3}
2、5 超集、子集
子集 < issubset
超集 > issuperset
set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
print(set1 < set2)
print(set1.issubset(set2)) # 这两个相同,都是说明set1是set2子集。
返回Ture
print(set2 > set1)
print(set2.issuperset(set1)) # 这两个相同,都是说明set2是set1超集。
返回Ture
2、 6 frozenset
不可变集合,让集合变成不可变类型
s2 = frozenset(set1)
print(s2,type(s2))
输出 frozenset({1, 2, 3}) <class 'frozenset'>
三、文件操作
3、1 文件操作基本流程
f = open('C:\\Users\\Administrator\\Desktop\\new.txt',encoding='utf-8',mode='r')
#open 他是windows系统的命令
#r:只读
# f 变量:f f_obj,obj,file_hl file_hanlder 文件句柄
#通过对文件句柄的操作,来得到你想要的东西.
content = f.read()
print(content)
#f.close 将你这文件句柄,或者是动作关闭,节省内存
f.close()
3、2 读
C:\\Users\\Administrator\\Desktop\\new.txt 绝对路径
相对路径:同一个文件夹下的文件就是相对路径
r
rb一般用在非文字类型的文件:图片,视频
文件的下载和上传的功能用b模式
f = open('log','r',encoding='utf-8')
content = f.read()
print(content,type(content))
f.close()
----相对路径
四、文件的打开模式
文件句柄 f = open(‘文件路径’,‘模式’)
#1. 打开文件的模式有(默认为文本模式): r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】 w,只写模式【不可读;不存在则创建;存在则清空内容】 a, 只追加写模式【不可读;不存在则创建;存在则只追加内容】 #2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式) rb wb ab 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码 #3,‘+’模式(就是增加了一个功能) r+, 读写【可读,可写】 w+,写读【可写,可读】 a+, 写读【可写,可读】 #4,以bytes类型操作的读写,写读,写读模式 r+b, 读写【可读,可写】 w+b,写读【可写,可读】 a+b, 写读【可写,可读】