千家信息网

python字典知识点有哪些

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍"python字典知识点有哪些",在日常操作中,相信很多人在python字典知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"python字典知
千家信息网最后更新 2025年12月02日python字典知识点有哪些

这篇文章主要介绍"python字典知识点有哪些",在日常操作中,相信很多人在python字典知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"python字典知识点有哪些"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

字典的定义

字典(dict)是较常用的数据类型,使用键值对的方式存储数据。键(key)必须是不可变对象且不能重复,通常用字符串作key;值(value)则不限类型。字典的底层结构是散列表(hash table),可以快速查key得value,是一种以空间换时间的数据结构。

字典的优点是查找和添加数据的速度快,不会随着键的数量增加而变慢;缺点是耗费内存。

列表的缺点是查找和插入数据的速度随着元素数量增加而变慢;优点是节省内存。

另外需要注意的是python 3.6改写了字典的内部算法,因此在3.6及更高版本的python中字典是有序的,顺序是元素添加的顺序。python3.6以前的版本字典是无序的。以下是验证示例代码:

d= dict()d["name"] = "Mike"d["age"] = 20d["money"] = 8000d["height"] = 180for key, value in d.items():    print(key, value)#可多次运行上述代码验证,每次打印的顺序都和字典内容添加顺序一致,说明是有序的。
s= {"Mike",20,8000,180}for i in s:    print(i)#可多次运行上述代码验证,每次打印的顺序都不一样,说明是无序的。

字典的创建

  • 空字典,一对花括号。

    d={}print(type(d))out:


  • 1对键值对的字典,用冒号隔开键值对、花括号将其包围。

    d = {'name':'Mike'}print(type(t))out:


  • 多对键值对的字典,用花括号将多对键值对包围,键值对之间用逗号隔开。

    d = {"name": "Mike", "age": 20, "money": 8000, "height": 180}print(type(d))out:


  • 其他类型转换成字典。

    key = ('name', 'age', 'money', 'height')value = ("Mike", 20, 8000, 180)d = dict(zip(key, value))  # 将2个列表或元组合并成字典的最常用的方法,要熟记print(d)list1=[('a', 1), ('b', 2), ('c', 3)]dict2 = dict(list1)print(dict2)  # 嵌套列表或元组,每个元素都是2个子元素,可转成字典,不如zip方法方便out:{'name': 'Mike', 'age': 20, 'money': 8000, 'height': 180}{'a': 1, 'b': 2, 'c': 3}


  • 字典推导式,字典推导式虽然有,实际用的很少,在此不再赘述。建字典最常用的dict(zip(key,value))方法要熟练掌握。

  • 创建有键无值的字典或键不同值相同的字典。

    key = ('name', 'age', 'money', 'height')dict1 = dict.fromkeys(key)  # 有键无值print(dict1)dict2 = dict.fromkeys(key, 0)  # 键不同值相同print(dict2)out:{'name': None, 'age': None, 'money': None, 'height': None}{'name': 0, 'age': 0, 'money': 0, 'height': 0}


字典的访问

  • 通过方括号访问键取值。若访问不存在的键会报错。

    dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}print(dict1["money"])# print(dict['country'])  异常TypeError: 'type' object is not subscriptableout:8000


  • 用get方法访问键取值。可预设默认值,若键不存在,则返回默认值,不添加键值对;键存在则返回原值。

    dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}print(dict1.get('name'))print(dict1.get('country', 'USA'))print(dict1)  # get方法不会添加键值对dict1['country'] = 'UK'print(dict1.get('country', 'USA'))out:MikeUSA{'name': 'Mike', 'age': 20, 'money': 8000, 'height': 180}UK


  • 用setdefault方法访问键取值。可预设默认值,若键不存在,则返回默认值,会添加键值对;键存在则返回原值。

    dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}print(dict1.setdefault('name', 'George'))print(dict1)print(dict1.setdefault('country', 'USA'))print(dict1)out:Mike{'name': 'Mike', 'age': 20, 'money': 8000, 'height': 180}USA{'name': 'Mike', 'age': 20, 'money': 8000, 'height': 180, 'country': 'USA'}


字典的增加与修改

  • 通过方括号直接添加或修改键值对。

    dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}dict1['coutry'] = 'USA'  # 字典无此键时表示添加键值对dict1['age'] = 21  # 字典有此键时表示修改值print(dict1)out:{'name': 'Mike', 'age': 21, 'money': 8000, 'height': 180, 'coutry': 'USA'}


  • 通过update方法添加或修改键值对。

    dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}dict1.update({'country': 'USA'})  # 字典无此键时表示添加键值对dict1.update({'age': 21})  # 字典有此键时表示修改值print(dict1)out:{'name': 'Mike', 'age': 21, 'money': 8000, 'height': 180, 'country': 'USA'}


字典的删除

  • del:根据key删除元素,也可以直接删除字典本身。

    dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}del dict1['money']print(dict1)del dict1out:{'name': 'Mike', 'age': 20, 'height': 180}


  • pop方法:删除指定键,返回值;若指定的键不存在会报错。

    dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}print(dict1.pop('money'))print(dict1)out:8000{'name': 'Mike', 'age': 20, 'height': 180}


  • popitem方法:随机删除一项键值对并返回该键值对。

    dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}print(dict1.popitem())print(dict1)out:('height', 180){'name': 'Mike', 'age': 20, 'money': 8000}


  • clear方法:清空字典内容,保留字典本身,在循环体中需要清空字典时优先用这个方法,而不要新建字典,因为新建的开销相对较大。

    dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}dict1.clear()print(dict1)out:{}


字典的查询

  • 对字典的key做in运算

    dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}print('name' in dict1)print('Mike' in dict1)out:TrueFalse


  • 对字典的值做in运算

    dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}print('name' in dict1.values())print('Mike' in dict1.values())out:FalseTrue


字典的内置方法

字典的内置方法非常丰富,除了上面说过的fromkeys、get、setdefault、update、pop、popitem、clear,还有一些序列通用方法len、copy,字典专属方法items()、keys()、values()。

  • len,返回字典的元素长度

  • copy,建立字典的副本,内容一致,id不同。(注意:嵌套结构要用deepcopy)

以下是案例

dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}print(len(dict1))dict2 = dict1.copy()print(id(dict1), id(dict2))out:42721528676224 2721528676288
  • items,同时返回字典的键值对

    dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}for key, value in dict1.items():    print(key, value, end='\t')out:name Mike  age 20     money 8000 height 180


  • keys,返回字典的键

    dict1 = {"name": "Mike", "age": 20, "money": 8000, "height": 180}for key in dict1.keys():    print(key, dict1[key], end='\t')out:name Mike  age 20     money 8000 height 180


  • values,返回字典的值。案例请查看前面的"字典的查询-对字典的值做in运算"

字典的嵌套结构

字典的键是不可变对象,不要用嵌套结构。字典的值是可变对象,可以是任意嵌套结构。

key = [i for i in range(5)]value = [ (i, j) for i in range(1,5) for j in range(10,15)]dict1 = dict(zip(key,value))print(dict1)out:{0: (1, 10), 1: (1, 11), 2: (1, 12), 3: (1, 13), 4: (1, 14)}

到此,关于"python字典知识点有哪些"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

字典 方法 元素 结构 知识 数据 顺序 知识点 学习 不同 代码 内容 对象 常用 括号 类型 可变 运算 验证 有序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 洛阳易美网络技术 彭博终端数据库 造成数据库死锁 销售软件开发公司经营范围 苏宁软件开发工程师工资 一个软件开发环境包括什么 电脑关机管理服务器 网络技术类的单招学校 软件开发干不下去了该怎么办 奔酷网络技术有限公司地址 宝山区工商数据库系统研发协议 深圳惠科软件开发位置 腾达路由器 打印服务器 raid服务器设备 电脑修图软件开发 电脑中的管理服务器在哪里 计算机网络技术五级的就业方向 希望英语单词软件开发 公安局宣传网络安全 哈佛医学院大脑数据库 长沙服务器回收批发价格 10分钟学会网络安全 我的世界服务器指定java 怎么从服务器把java拿下来 一个数据库文件中可以有几个报表 网络安全体现在多网合一 腾达路由器 打印服务器 计算机信息管理软件开发方向专业 软件开发公司财务培训 普陀区正规数据库服务商报价行情
0