集合,数据类型总结,文件处理之基础

今日内容:

一、集合类型

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
posted @ 2020-12-24 16:12  小绵  阅读(127)  评论(0编辑  收藏  举报