作者:江夏| 知乎:https://www.zhihu.com/people/1024-paper-96,今天小编就来说说关于python中dict底层结构?下面更多详细答案一起来看看吧!
python中dict底层结构
作者:江夏
| 知乎:https://www.zhihu.com/people/1024-paper-96
| github:https://github.com/JiangXia-1024?tab=repositories
| csdn:https://blog.csdn.net/qq_41153943
| 掘金:https://juejin.cn/user/651387938290686
| 公众号:1024笔记
本文一共1534字,阅读时长8分钟
在python语言中内置的数据结构有:列表(list)、元组(tuple)、字典(dict)、集合(set), 这4种数据结构和基础数据类型(整数、浮点数等)统称为“内置类型”(Built-in Types)。字典(dict)是一种可变的容器模型,且可存储任意类型的对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,字典中的键必须是唯一的,即不能出现重复的键但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
字典的基本格式为
dict1 = {key1 : value1, key2 : value2 } 复制代码
具体使用如下:
#声明一个字典 dict1={"语文":99,"数学":98,"英语":97} dict1 输出:{'语文': 99, '数学': 98, '英语': 97} #字典中的键可以是不同类型的,但需是不可变的数据类型,比如字符串,数字,元组等 dict1={"name":"张三",98:"成绩",("上海","中国"):"地址"} dict1 输出:会报错“raceback (most recent call last):File "<stdin>", line 1, in <module> ypeError: unhashable type: 'list'” #如果用可变的数据类型做键,比如list dict1={"name":"张三",98:"成绩",["上海","中国"]:"地址"} dict1 输出:{'name': '张三', 98: '成绩', ('上海', '中国'): '地址'} #还可以创建空的字典 dict1={} dict1 输出:{} #还可以声明空value的字典,只要键,没有value,并且value的值可以是重复的,所以这里是重复的空value dict1={"数学","语文","英语"} dict1 输出:{'英语', '语文', '数学'} #如果键重复,则后面的同样的键的值会覆盖前面的键的值 dict1={"语文":99,"语文":98,"英语":97} dict1 输出:{'语文': 98, '英语': 97} #对字典的操作,都是通过对键访问 #对于字典dict1={"语文":99,"语文":98,"英语":97},访问键为语文的值 dict1={"语文":99,"语文":98,"英语":97} dict1["语文"] 输出:98 #还可以使用get(),get()方法其实就是根据 key 来获取 value, #当使用方括号语法访问并不存在的 key 时,字典会引发 KeyError 错误;但如果使用 get() 方法访问不存在的 key,该方法会简单地返回 None,不会导致错误。 dict1={"语文":99,"语文":98,"英语":97} print(dict1.get("语文")) 输出:98 #添加键值对,只需要对不存在的key进行赋值即可 dict1={"语文":99,"语文":98,"英语":97} dict1["化学"]=89 dict1 输出:{'语文': 98, '英语': 97, '化学': 89} #修改键值对的值,只需要对key进行重新赋值 dict1={"语文":99,"语文":98,"英语":97} dict1["英语"]=150 dict1 输出:{'语文': 98, '英语': 150} #还可以使用update()来对键值对进行修改了添加 #update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典。 #在执行 update()方法时,如果被更新的字典中已包含对应的 key-value 对,那么原 value 会被覆盖; # 如果被更新的字典中不包含对应的 key-value 对,则该 key-value 对被添加进去。 dict1={"语文":99,"数学":98,"英语":97} dict1.update({"语文":199,"化学":98}) dict1 输出:{'语文': 199, '数学': 98, '英语': 97, '化学': 98} #删除字典键值对使用del dict1={"语文":99,"语文":98,"英语":97} del dict1["英语"] dict1 输出:{'语文': 98, '英语': 97} #还可以使用del删除字典 dict1={"语文":99,"语文":98,"英语":97} del dict1 dict1 输出:"Traceback (most recent call last):File "<stdin>", line 1, in <module> NameError: name 'dict1' is not defined(dict1字典没有定義)" #还可以使用clear()清空字典, dict1={"语文":99,"语文":98,"英语":97} dict1.clear() dict1 输出:{} "输出一个空的字典,即dict1字典还在,只是没有了元素,不同于del" #将字典转换成字符串 dict1={"语文":99,"语文":98,"英语":97} str(dict1) 输出:"{'语文': 98, '英语': 97}" #同样可以将字典转化成list dict1={"语文":99,"语文":98,"英语":97} list(dict1) 输出:['语文', '英语'] #items()、keys()、values() 分别用于获取字典中的所有 key-value 对、所有 key、所有 value。这三个方法依次返回 dict_items、dict_keys 和 dict_values 对象 #通过type可以返回变量类型 #字典的便利,传统的遍历只能输出键 dict1={"语文":99,"语文":98,"英语":97} for item in dict1: print(item) 输出:语文 英语 #输出每个键值对 dict1={"语文":99,"语文":98,"英语":97} d1= dict1.items(); print(type(d1)) 输出:<class 'dict_items'> for item in d1: print(item) 输出:('语文', 98) ('英语', 97) #输出每个值 dict1={"语文":99,"语文":98,"英语":97} d1= dict1.values(); print(type(d1)) 输出:<class 'dict_values'> for item in d1: print(item) 输出:98 97 #输出每个键 dict1={"语文":99,"语文":98,"英语":97} d1= dict1.keys(); print(type(d1)) 输出:<class 'dict_keys'> for item in d1: print(item) 输出:语文英语 复制代码
以上就是Python中列表的简单使用!
最后欢迎关注公众号:1024笔记,免费获取海量学习资源(涵盖视频、源码、文档)!
其他推荐:
,
- Python入门(四):集合(set)的使用
- Python入门(二):列表(List)的使用
- Python入门(三):元组(tuple)的使用
- Python入门(一):字符串的格式化