2020-12-24集合、文件管理笔记

课外拓展:
队列:先进先出(FIFO)像排队的队列,队伍前面的一定先完成某件事
堆栈:后进先出(LILO)像叠衣服一样,后叠的往往在最上面

集合set类型
主要用途:
(1)去重,但非常鸡肋,可以去重,但处理的必须是不可变类型的数据,同时得到的得数据是无序的,
手动去重:

l=['a','b',1,'a','a']
list = []
for i in l:
    if i not in list:
        list.append(i)
        print(list)
 

(2)定义方式:在{}内用逗号分隔开多个元素,集合内元素特点有三个:
(1)集合内元素必须是不可变类型
(2)集合内元素不可重复(重复不会报错,但重复的部分不显示)
(3)集合内元素无序

数据类型的转换,
res = set(‘hello’)
print(res)
s = set() #定义一个新集合
print(s,type(s))
3.常用操作+内置方法
(1)交集:去两个集合共同的部分,取同时选修了两门课程的同学
python & linux
方法二:python.intersection_update(linux)
(2)并集:两个集合并到一起,所有学生的姓名
python | linux
方法二:python.union(linux)
(3)差集:一个集合剪掉另一集合共同的部分只学了某一课程的学生
python - linux
linux - python
方法二python.difference(linux)
(4)交叉补集/对称差集:两个集合互相减,然后再并到一起,取没有同时学习两门课的学生
python ^ linux
方法二:python.symmetric_difference(linux)
(5)当x集合完全包含了y集合,那么我们就说x集合是y集合的父集:
x={1,2,3,4,5} y={1,2,3}
x>=y #此时x是用的父集,y是x的子集
方法二:python.superset(linux)

内置方法:(*****)
s1 = {1,2,3}
s1.update({345}) #并集并去重,一次添加多个元素
s.add:
s1.add(4) #一个一个元素的添加

删除:
s1.remove(3) #指定元素删除,元素不存在报错
s1.discard(4) #指定元素删除,元素不存在时不报错
s1.pop(2) #随机删除 拥有返回值
s1.clear() #整体清空
复制:
s1.copy

文件处理:
#应用程序向操作系统发送打开文件的请求,操作系统打开该文件,对应的一块硬盘空间,并返回一个文件对象(文件句柄)赋值给f
f = open(“文件路径”,“rt”,encoding = ‘utf-8’) #"rt"表示read text 即对这个文本文件只有读的权限,encoding 表示指定一种编码表
data = f.read() #调用文件对象下的读(写)功能,会被操作系统转换成读(写)硬盘的操作
f.close() #向操作系统发起关闭文件的请求,回收操作系统资源
在这里插入图片描述

with上下文管理:
打开一个文件会用到两部分资源,一部分是应用程序中的变量f 另一部分是操作系统打开的文件,在操作完文件内容以后
一定要回收这两部分资源,应用程序中的变量f会有python的垃圾处理机制去管理,所以我们这里只需要考虑回收系统
的资源就可以了,
with open(‘a.txt’,‘w’) as f:
data = f.winte() #可以看到这里我们不用在去调用f.close()这个功能,因为with在执行完子代码块后,会自动调用f.close()
with还可以同时打开多个文件,用逗号分隔开就好如:
with open(‘a.txt’,‘r’)as f ,open(‘b.txt’,‘w’)as t:
data = f.read()
t.write(data)

字符编码:
什么是字符编码?
人类认识的字符参照字符编码表转成数字的过程就是编码,将数字参照字符编码表转译成人类的字符的过程叫解码,同时如果想不出现乱码情况,编码与解码的过程必须参照字符编码表。
为什么要学习字符编码?
为了解决程序在运行过程中可能会出现的乱码问题
字符编码表的发展历史
字符编码表分为三个阶段
初期:一家独大:
ASCII码:只能识别英文字母
8bit 对应一个字母

中期:百家争鸣
每个国家都拥有自己的字符编码表,每个国家的数据无法沟通,非常乱,也会出现乱码

后期:逐渐统一
后来人们创造了一个Unicode字符编码表(万国字符表),这张表上拥有全世界的字符,但因为Unicode字符比较长,所以现在的计算机是用Unicode的字符存入内存,再用utf-8的字符编码表存入硬盘,utf-8是一种精简的Unicode的字符编码表,那么为什么不删除Unicode字符编码表呢?因为Unicode不光是万国字符编码表,他还为了兼容以前的字符编码表编译的文件。所以以后我们存入硬盘的文件默认用utf-8格式存入文件,就可以减少乱码的出现

扫描二维码关注公众号,回复: 12892540 查看本文章

猜你喜欢

转载自blog.csdn.net/givenchy_yzl/article/details/111645721