IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python——字典总结 -> 正文阅读

[Python知识库]python——字典总结

?字典(dict)
字典是一种新的数据结构,称为映射(mapping)
字典的作用和列表类似,都是用来储存对象的容器
列表储存数据的性能很好,但是查询数据的性能很差
在字典中每一个元素都有一个唯一的名字,通过这个唯一的名字可以快速查找到指定的元素
在查询元素时,字典的效率非常快
在字典中可以保存多个对象,每个对象都会有一个唯一的名字,这个唯一的名字,我们称为键(key),通过key可以快速的查询value,所以字典,我们也称为叫做键值对(key--value)结构
每个字典中可以有多个键值对,而每一个键值对我们称其为一项(item)
创建字典:使用{}来创建字典
创建一个空字典

d = {}
#输出这个空字典,并检查它的类型
print(d,type(d))

创建一个保护有数据的字典
语法:
{key1:value1,key2:value2,key3:value3}
字典的值可以是任意对象
字典的key可以是任意的不可变对象 :int ,str ,bool, tuple
字典的key是不能重复的,如果出现重复的后边的会替换到前边的

n = {"name":"孙悟空","age":"20","sex":"男"}
print(n)
# 字典的取值:需根据key来获取,如果使用了字典中不存在的键,会报错
print(n["name"],n["age"],n["sex"])

字典的使用:
创建字典
语法:{k1:v1,k2:v2,k3:v3}

使用dict()函数来创建字典

d = dict(name = "孙悟空",age = "23",sex = "男") 
#每一个参数都是一个键值对

参数名就是键,参数名就是值(这种方式创建的字典,key都是字符串)

也可以将包含双值子序列的序列转换为字典
双值序列:序列中只有两个值,[1,2],[3,4],("1",3) "ab"
子序列:如果序列中的元素也是序列,那么我们称这个元素为子序列
? ? ? ? ? ? ? ? # 如: [(1,2),(3,6)]

m= dict([("name","五宋朝"),("age",19)])
#输出并检查其类型
print(m,type(m))

?len(): 获取字典中键值对的个数

m= dict([("name","五宋朝"),("age",19)])
#利用len()函数获取键值对的个数
print(len(m))

in 和 not in :
? ? ? ? # in:检查字典中是否包含指定的键
? ? ? ? # not in 检查字典中是否不包含指定的键

m= dict([("name","五宋朝"),("age",19)])?

print("name" in m)
print("ann" not in m)

获取字典中的值
1.?获取字典中的值,根据键值来获取
语法: ?d[key] ?

m= dict([("name","五宋朝"),("age",19)])

print(m["name"])


通过这个方法来获取值时,如果键值不存在,会抛出异常: keyError

2.?d.get(key[, default])方法
该方法用来根据键值来获取字典中的值

m= dict([("name","五宋朝"),("age",19)])

print(m.get("name"))
print(m.get("wr5t"))


用这个方法来获取字典中的值时,如果键值不存在,会返回None,而不会报错
也可以指定一个默认值,来作为第二个参数,这样当获取不到值时将会返回默认值
# print(m.get("uuu","wwe"))

修改字典 :
1.?d[key] = value
如果key存在则覆盖对应的value,不存在则添加

m= dict([("name","五宋朝"),("age",19)])

m["name"] = "wetyu"
m["adress"] = "河南"
print(m)


2.?s.setdefault(key[,default])
可以用来向字典中添加key-value

如果key已经存在于字典中,则返回key的值,不会对字典做任何操作
如果key值不存在,则向字典中添加这个key,并设置value

m= dict([("name","五宋朝"),("age",19)])

m.setdefault("name","猪八戒")
print(m)


3.?update([other])
将其他的字典中的key-value添加当前字典中
如果有重复的key,则后边的会替换原先的

a = {"a":1,"b":2,"c":3}
a2 = {"a":4,"e":5,"f":6}
a.update(a2)


?

删除
1.?使用del来删除字典中的键值对,key不存在时,会报错

a = {"a":1,"b":2,"c":3}

del a["a"]
print(a)


?

2.?s.popitem()方法
随机删除字典中的键值对,一般都会删除最后一个键值对
删除之后,它会将删除的key-value作为返回值返回,
注意:返回的是一个元组:第一个元素是key,第二个元素是value
当使用popitem()来删除一个空字典时,会抛出异常
#q = a.popitem()
?


3.?pop(key[,default])
根据key删除字典中的key-value,并返回所删除的value值
如果删除不存在的key,则会抛出异常
如果指定了默认值(default),再删除不存在的key时,此时不会报错,而是直接返回默认值

a = {"a":1,"b":2,"c":3}

q = a.pop("o",9)
print(q)
print(a)


4.?s.clear()方法
删除字典中的所有的项(清空字典)

a = {"a":1,"b":2,"c":3}

a.clear()
print(a)


5.?s.copy()方法
该方法用于对字典进行浅复制 #注意:浅复制只会简单的对象内部的值
如果内部的值也是一个可变对象,这个可变对象不会被复制
复制以后的对象,和原对象是独立的,修改一个不会影响另一个

a = {"a":1,"b":2,"c":3}

b = a.copy()
b["a"] = 343
print(a)
print(b)
#检查一下两个变量的id
print(id(a))
print(id(b))


下面演示浅复制

d = {"a":{"name":"唐僧","age":34},"b":2,"c":3}
print(d)
d2 = d.copy()
print(d2)
d["a"]["name"] = "无效"
print(d)
print(d2)

遍历字典
方法一:
keys():该方法会返回所有的key
该方返回的是序列,序列中保存有字典的所有的key

d = {"a":1,"b":2,"c":3,"d":4,"e":5}
for k in d.keys() :
? ? print(k,d[k])
print(d[k])

print(d.keys())


方法二:
values()
该方法返回一个序列,序列中保存的是字典中的所有的值

for m in d.values() :
? ? print(m)


方法三:
该方法会返回字典中所有的项
它会返回一个序列,这个序列中包含有双值子序列
双值分别是:字典中的key和value

print(d.items())
for q,v in d.items() :
? ? print(q,"=",v)


梧高风必至!

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-24 10:47:36  更:2022-01-24 10:48:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:27:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码