字典、集合类型

本文详细介绍了Python中字典的基本使用,包括定义、存取、删除、转换、循环等操作,以及集合的相关知识,如去重、关系运算、成员运算、并集、交集、差集等。同时,讲解了文件处理的概念和操作步骤,包括读取文件和文件的上下文管理。
摘要由CSDN通过智能技术生成

字典类型
基本使用
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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值