字典类型
基本使用
1、用途:按照key:value的形式存放多个值
2、定义方式:在{}内用逗号分隔开多个key:value的元素,其中value可以是任意数据类型,而key必须是不可变类型,通常是字符串类型,
d={1:1111,(1,2,3):2222} # d=dict(…)#dict字典
print(d[(1,2,3)])#通过key(1,2,3)来获取value
key不能重复
# d={"k1":111,"k2":222,"k3":333,"k1":444,"k1":5555}
# print(d)#重复过多的会以最新的为准
# dict数据类型转换
# res=dict([("k1",1111),("k2",2222),("k3",3333)])
# print(res)#转化为字典输出
# res=dict(x=111,y=222,z=333)
# print(res)#=转换成字典的:
# res={}.fromkeys(["name","age","gender"],None)
# print(res)#转为字典格式,列表里的变为key,后面的None变为value
3、常用操作+内置的方法
# 优先掌握的操作:
# 1、按key存取值:可存可取
# d={"k1":111,"k2":222,"k3":333}
# d["k1"]=666#更改
# print(d)
# d["k4"]=444444#没有就会添加
# print(d)
# l=[111,222,333]
# l[0]=666#更改第一个元素
# print(l)
# l[3]=777#没有的就无法更改,会报错
2、长度len
# d={"k1":111,"k2":222,"k3":333}
# print(len(d))#输出长度
3、成员运算in和not in
# d={"k1":111,"k2":222,"k3":333}
# print("k1" in d)#判断是否在字典里
4、删除
# d = {"k1": 111, "k2": 222, "k3": 333}
# 方式一:
# del d["k1"]
# print(d)#指定key来删除
# 方式二:
# res=d.pop("k1")#指定删除
# print(res)#返回被删除的值
# print(d)#输出删除后的内容
5、键keys(),值values(),键值对items()
# d = {"k1": 111, "k2": 222, "k3": 333}
5、键keys(),值values(),键值对items()
# d = {"k1": 111, "k2": 222, "k3": 333}
6、循环
d = {“k1”: 111, “k2”: 222, “k3”: 333}
# for k in d.keys():
# print(k)#只输出key
# for k in d:
# print(k,d[k])#输出key和对应的value
# for v in d.values():
# print(v)#输出value
# for k,v in d.items(): # k,v=('k1', 111)
# print(k,v)#把key和value全都输出
print(d.keys(),type(d.keys()))#输出键,并且输出类型
print(d.values())#输出值
print(d.items())#输出键值对
7、get
# d = {"k1": 111, "k2": 222, "k3": 333}
# print(d["kkkk"])#输出key为kkkk的值,但由于没有,所以会报错
# print(d.get("kkkk"))#输出key为kkkk的值,没有,但不会报错,输出None
需要掌握的操作
# d={"k1":1111,"k2":222,"k3":333}
# dic=d.copy()#浅拷贝
# print(dic)
# d.update({"k3":444,"k5":5555})
# print(d)#浅拷贝,并且将没有的加进去,更新内容
# res=d.popitem()#随机删除一个
# print(res)#输出被删除的一个
# if "k1" not in d:
# d["k1"]=66666666666666
# res=d.setdefault("k1",666666666666)#如果字典里面没有k1,就返回设定好的值
# print(d)
# print(res)
总结
存多个值
无序
可变
集合类型
1、用途:
(1)去重
(2)关系运算
2、定义方式:在{}内用逗号分隔开多个不可变类型
集合特点:
1、元素必须是不可变类型
2、集合内元素无序
3、集合内元素唯一
数据类型转换
# res=set("hello")#set可以放拆分的,不可重复的,可改变的数据
# print(res)
集合的去重
# nums=[111,"aaa",111,111,222,3333,444,['x','y']]#当里面含有列表的时候没法去重
# s=set(nums)#获取,并且去重
# nums=list(s)#重新编为字典
# print(nums)#输出
写代码去重
# l=[
# {'name':'egon','age':18,'sex':'male'},
# {'name':'alex','age':73,'sex':'male'},
# {'name':'tom','age':20,'sex':'female'},
# {'name':'egon','age':18,'sex':'male'},
# {'name':'egon','age':18,'sex':'male'},
# ]
res=[]#先准备好一个空列表
# for item in l:#如果
# if item not in res:#如果得到的是没有在res列表里的
# res.append(item)#添加到空列表里的
# print(res)#输出
3、常用操作+内置的方法
#优先掌握的操作:
#1、长度len
# s={11,222,333}
# print(len(s))
#2、成员运算in和not in
# print(11 in s)
关系运算
pythons=[‘alex’,‘egon’,‘yuanhao’,‘wupeiqi’,‘gangdan’,‘biubiu’]
# linuxs=['wupeiqi','oldboy','gangdan']
# l=[]#创一个新列表
# for x in pythons:#如果x在pythons里面
# if x in linuxs:#如果在linuxs里面
# # print(x)
# l.append(x)#添加到新列表里
# print(l)#输出列表
# pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
# linuxs={'wupeiqi','oldboy','gangdan'}
# 3、|并集:
# print(pythons | linuxs)#输出两个加起来的所有,并且 去重
# print(pythons.union(linuxs))#同上面的一样的效果
#4、&交集: 共同部分
# print(pythons & linuxs)#输出两个相同的
# print(pythons.intersection(linuxs))#同上面的一样的效果
# pythons=pythons & linuxs#同样,输出两个相同的
# print(pythons)
# pythons.intersection_update(linuxs)
# print(pythons)
5、-差集
# print(pythons - linuxs)#以pythons为主体减去与linuxs相同的部分
# print(pythons.difference(linuxs))#与上面相同的效果
# print(linuxs - pythons)#以linuxs为主体减去与pythons相同的部分
# print(linuxs.difference(pythons))#与上面相同的效果
6、^对称差集: 取出只报名一门课的学生
# res=(pythons - linuxs) | (linuxs - pythons)#先两个相差,然后相加,就可以得到只报名一门的
# res=pythons ^ linuxs#可以得到只报名一门的
# print(res)
# print(pythons.symmetric_difference(linuxs))#与上面同样的效果
7、==
# s1={1,2,3}
# s2={3,2,1}
# print(s1 == s2)#相同就输出True
8、父集:>=,子集:<=
# s1={1,2,3,4,5}
# s2={3,2,1}
# print(s1 >= s2)#判断s1是否是s2的父集
# print(s1.issuperset(s2))#与上面是相同的效果
# print(s2 <= s1)#判断s2是否是s1的子集
# print(s2.issubset(s1))#与上面是相同的效果
需要掌握
# s={"aaa",22,3,"bbb"}
# s.update({3,4,5})#将3,4,5添加到上面的字典里,并且去重
# print(s)
# res=s.pop()#随机删除一个
# print(s)#输出结果
# print(res)#输出删除的那个
# res=s.remove("bbb")#删除bbb
# print(s)#输出结果
# print(res)#没有结果,是None
# s.discard("cccccccccc")#删除元素,但元素不存在的时候,不会报错
# s.remove("cccccccccc")#删除元素,元素不存在的时候,会报错
# print(s)
# s.add("ccc")#添加ccc
# print(s)
# s1={1,2,3}
# s2={4,5,6,3}
# print(s1.isdisjoint(s2))#isdisjoint判断两个集合是否含有相同的元素
总结
存多个值
无序
可变
# s={1,2,3}
# print(id(s))
# s.add(4)
# print(id(s))#添加后,id并不会变化
文件处理
1、什么是文件
文件是操作提供给用户/应用程序存取硬盘的一种机制
2、为何要用文件
永久保存数据
3、如何用文件
应用程序 open()
操作系统 文件
计算机硬件(硬盘)
一、操作文件的步骤
# f=open(r"aaa\a.txt",mode="rt",encoding='utf-8')#r可以把里面的内容当作原内容
,不会被当成符号,mode="rt"里r是读文件,t是指txt文件,encoding指的就是字符编码
# # f的值:文件对象/文件句柄
# data=f.read()#f的可以阅读然后赋值给data
# # print(data)#输出data
# # print(f)#可以打印里面的内容
# f.close() # 回收系统资源
# # print(f)#还是可以查看里面的内容
# f.read()#但是不能调用里面的功能
二、with上下文管理
with open(r"aaa\a.txt",mode="rt",encoding='utf-8') as f1,\#\表示是一个换行
open(r"aaa\b.txt",mode="rt",encoding='utf-8') as f2:
f1.read()
f2.read()