集合,数据类型总结,文件处理之基础
今日内容:
一、集合类型
1、作用:去重,关系运算
(1)不能保证顺序
ames = ['egon','lxx','lili',"egon","egon"]
print(list(set(names))) #集合去重,无序
students_info = [
{"name":"egon","age":18,"gender":"male"},
{"name":"tom","age":19,"gender":"male"},
{"name":"jack","age":38,"gender":"female"},
{"name":"egon","age":18,"gender":"male"},
{"name":"egon","age":18,"gender":"male"
},]
new_l = []for info in students_info:
if info not in new_l:
new_l.append(info)print(new_l) #用for去重,结果有顺序
2、定义集合:
定义方式: 在{}内用逗号分隔开多个元素,集合内元素的特点有三个
(1)集合内元素必须是不可变类型
(2)集合内元素不能重复
(3)集合内元素无序
数据类型转换
res = set("hello")
print(res)
3、常用操作+内置的方法
优先掌握的。案例:
pythons = {"tom","jack","alex","egon","lxx"}
linuxs = {"lili","hanmeimei","张三","egon","lxx","jay"}
(1)交集:取两个集合的共同部分->既报名pythons又报名linuxs的学生
pythons = pythons & linuxs
(2)并集:两个集合并到一起->所有学生的姓名
print(pythons | linuxs)
(3)差集: 一个集合减掉与另外一个集合共同的部分
只学了python的学生姓名
print(pythons - linuxs)
只学了linux的学生姓名
print(linuxs - pythons)
(4) 交叉补集/对称差集:两个集合互相减,然后再并到一起-,取没有同时学两门课程的学生
res = (pythons - linuxs) | (linuxs - pythons)
或res = pythons ^ linuxs
print(res)
(5) 父子集合:当一个集合完全包含了另外一个集合,该集合才能称爹
s1 = {1,2,3}
s2 = {1,2}
print(s1 >= s2)
print(s1.issuperset(s2))
需要掌握的:
update 更新集合
s1 = {1,2,3}
s1.update({3,4,5})
print(s1)
add 只添加一个新值
s1 = {1,2,3}
s1.add(4)
print(s1)
remove 指定删除,如删除不在的元素,会报错
s1 = {11,22,33,44,55,"xx","yy","zz","aa"}
s1.remove(33)
print(s1)
discard 指定删除,如删除不在的元素,不会报错
s1 = {11,22,33,44,55,"xx","yy","zz","aa"}
s1.discard(333)
print(s1)
pop 集合没有索引,随机删除任意元素
s1 = {11,22,33,44,55,"xx","yy","zz","aa"}
res=s1.pop()
print(s1)
clear 清空
s1 = {11,22,33,44,55,"xx","yy","zz","aa"}
s1.clear()
print(s1)
copy 复制
s1 = {11,22,33,44,55,"xx","yy","zz","aa"}
s1.copy()
print(s1)
isdisjoint 判读是否完全不相关的集合
s1 = {1,2,3}
s2 = {3,4,5,6}
print(s1.isdisjoint(s2))
该类型总结:
^ 存多个值
^ 无序
^ 可变
二、数据类型总结
按存储空间的占用分(从低到高)
数字
字符串
集合:无序,即无序存索引相关信息
元组:有序,需要存索引相关信息,不可变
列表:有序,需要存索引相关信息,可变,需要处理数据的增删改
字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改
按存值个数区分
原子类型 | 数字,字符串 |
---|---|
容器类型 | 列表,元组,字典 |
按可变不可变区分
可变 | 列表,字典 |
---|---|
不可变 | 数字,字符串,元组 |
按访问顺序区分
直接访问 | 数字 |
---|---|
顺序访问(序列类型) | 字符串,列表,元组 |
key值访问(映射类型) | 字典 |
三、文件处理
1、介绍
(1)什么是文件
文件是操作系统提供给用户或者应用程序操作硬盘的一种机制
(2)为何要用文件
读写文件-----存取硬盘
应用程序: open()
操作系统: 打开文件
计算机硬件: 硬盘空间
(3)操作文件的流程:
1. 打开文件,得到文件句柄并赋值给一个变量
f=open('a.txt','r',encoding='utf-8') #默认打开模式就为r
2. 通过句柄'f'对文件进行操作
data=f.read()
3. 关闭文件
f.close()
(4)f=open('a .t x t','r')的过程分析
1、由应用程序向操作系统发起系统调用open(...)
2、操作系统打开该文件,并返回一个文件句柄给应用程序
3、应用程序将文件句柄赋值给变量f