零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门
一.Python 字典 dict 简介
前面的课程讲解了字符串 str / 列表 list / 元组 tuple ,还有最后一种比较重要的数据类型也需要介绍,那就是Python 字典,俗称:dict.
Python 中的字典可与字符串 / 列表 / 元组不同,因为字典 dict 需要由两部分组成,分别是 key 和 value ,简称:键值对,下面具体讲解一下关于字典的特点:
- 1.由一个或者多个键值对构成,键值对的类型可以不相同也可以相同;
- 2.字典中的键值对需要写在 {} 中括号内部,键值对中的 key 和 value 用 : 隔开,键值对与键值对之间用逗号隔开;
- 3.字典是一个无序的集合;
- 4.字典中 key 具有唯一性;
![图片[1]-Python 字典dict-猿说编程](https://www.codersrc.com/wp-content/uploads/2021/03/28dd2c7955ce926.png)
二.Python 字典 dict 定义
# !usr/bin/env python# !usr/bin/env python# -*- coding:utf-8 _*-"""@Author:猿说编程@Blog(个人博客地址): www.codersrc.com@File:python字典dict.py@Time:2021/3/23 00:37@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""dict1 = dict() # 定义一个空字典print(dict1)print(type(dict1)) # 输出字典类型 dictprint(len(dict1)) # 获取字典键值对数量print("***"*20) # 小窍门:直接打印60 个 *#字典可以有一个或者多个键值对构成,键值对与键值对之间使用逗号隔开# "name" / "age" / "sing_gou" 是key# "隔壁老王" / 42 / True 是valuedict2 = {"name":"隔壁老王", "age":42, "singe_dog":True}print(dict2)print(type(dict2)) # 输出字典类型 dictprint(len(dict2)) # 获取字典键值对数量print("***"*20) # 小窍门:直接打印60 个 *# 字典中出现了两个一样的key:"age",默认后面的value会覆盖前面的valuedict3 = {"name":"隔壁老王", "age":42, "singe_dog":True,"age":15}print(dict3)'''输出结果:{}<class 'dict'>0************************************************************{'name': '隔壁老王', 'age': 42, 'singe_dog': True}<class 'dict'>3************************************************************{'name': '隔壁老王', 'age': 15, 'singe_dog': True}'''# !usr/bin/env python # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿说编程 @Blog(个人博客地址): www.codersrc.com @File:python字典dict.py @Time:2021/3/23 00:37 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! """ dict1 = dict() # 定义一个空字典 print(dict1) print(type(dict1)) # 输出字典类型 dict print(len(dict1)) # 获取字典键值对数量 print("***"*20) # 小窍门:直接打印60 个 * #字典可以有一个或者多个键值对构成,键值对与键值对之间使用逗号隔开 # "name" / "age" / "sing_gou" 是key # "隔壁老王" / 42 / True 是value dict2 = {"name":"隔壁老王", "age":42, "singe_dog":True} print(dict2) print(type(dict2)) # 输出字典类型 dict print(len(dict2)) # 获取字典键值对数量 print("***"*20) # 小窍门:直接打印60 个 * # 字典中出现了两个一样的key:"age",默认后面的value会覆盖前面的value dict3 = {"name":"隔壁老王", "age":42, "singe_dog":True,"age":15} print(dict3) ''' 输出结果: {} <class 'dict'> 0 ************************************************************ {'name': '隔壁老王', 'age': 42, 'singe_dog': True} <class 'dict'> 3 ************************************************************ {'name': '隔壁老王', 'age': 15, 'singe_dog': True} '''# !usr/bin/env python # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿说编程 @Blog(个人博客地址): www.codersrc.com @File:python字典dict.py @Time:2021/3/23 00:37 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! """ dict1 = dict() # 定义一个空字典 print(dict1) print(type(dict1)) # 输出字典类型 dict print(len(dict1)) # 获取字典键值对数量 print("***"*20) # 小窍门:直接打印60 个 * #字典可以有一个或者多个键值对构成,键值对与键值对之间使用逗号隔开 # "name" / "age" / "sing_gou" 是key # "隔壁老王" / 42 / True 是value dict2 = {"name":"隔壁老王", "age":42, "singe_dog":True} print(dict2) print(type(dict2)) # 输出字典类型 dict print(len(dict2)) # 获取字典键值对数量 print("***"*20) # 小窍门:直接打印60 个 * # 字典中出现了两个一样的key:"age",默认后面的value会覆盖前面的value dict3 = {"name":"隔壁老王", "age":42, "singe_dog":True,"age":15} print(dict3) ''' 输出结果: {} <class 'dict'> 0 ************************************************************ {'name': '隔壁老王', 'age': 42, 'singe_dog': True} <class 'dict'> 3 ************************************************************ {'name': '隔壁老王', 'age': 15, 'singe_dog': True} '''
注意:如果字典中出现相同的 key 值,只有最后一个 key / value 有效,前面相同的 key / value 会被覆盖,这就是字典 dict 所谓的唯一性.
三.Python 字典 dict 增加数据
如果想要在字典中添加数据,直接赋值就可以,比较简单,跟上示例代码演示一波:
# !usr/bin/env python# !usr/bin/env python# -*- coding:utf-8 _*-"""@Author:猿说编程@Blog(个人博客地址): www.codersrc.com@File:python字典dict.py@Time:2021/3/23 00:37@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""dict1 = dict() # 定义一个空字典print(dict1) # 输出一个空的字典dict1["name"] = "猿说python" # 添加键值对 "name":"猿说python" 到 dict1dict1["url"] = "shuopython.com" # 添加键值对 "url":"shuopython.com" 到 dict1print(len(dict1)) # 获取字典键值对数量print(dict1) # 输出整个字典'''输出结果:{}2{'name': '猿说python', 'url': 'shuopython.com'}'''# !usr/bin/env python # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿说编程 @Blog(个人博客地址): www.codersrc.com @File:python字典dict.py @Time:2021/3/23 00:37 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! """ dict1 = dict() # 定义一个空字典 print(dict1) # 输出一个空的字典 dict1["name"] = "猿说python" # 添加键值对 "name":"猿说python" 到 dict1 dict1["url"] = "shuopython.com" # 添加键值对 "url":"shuopython.com" 到 dict1 print(len(dict1)) # 获取字典键值对数量 print(dict1) # 输出整个字典 ''' 输出结果: {} 2 {'name': '猿说python', 'url': 'shuopython.com'} '''# !usr/bin/env python # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿说编程 @Blog(个人博客地址): www.codersrc.com @File:python字典dict.py @Time:2021/3/23 00:37 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! """ dict1 = dict() # 定义一个空字典 print(dict1) # 输出一个空的字典 dict1["name"] = "猿说python" # 添加键值对 "name":"猿说python" 到 dict1 dict1["url"] = "shuopython.com" # 添加键值对 "url":"shuopython.com" 到 dict1 print(len(dict1)) # 获取字典键值对数量 print(dict1) # 输出整个字典 ''' 输出结果: {} 2 {'name': '猿说python', 'url': 'shuopython.com'} '''
四.Python 字典 dict 删除数据
- 字典是无序的,每个键值对没有索引值,这也是字典与字符串/列表/元祖的区别;
- 删除字典中的数据,需要根据键值对中的 key 值来删除对应的键值对,删除使用 del 关键字;
dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典print(dict1) # 输出删除之前的字典# 删除key等于"name"对应的键值对del dict1["name"]print(dict1)# 删除key等于"age"对应的键值对del dict1["age"]print(dict1)# 删除key等于"sing_dog"对应的键值对del dict1["sing_dog"]print(dict1)'''输出结果:{'name': 'zhangsan', 'age': 38, 'sing_dog': True}{'age': 38, 'sing_dog': True}{'sing_dog': True}{}'''dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典 print(dict1) # 输出删除之前的字典 # 删除key等于"name"对应的键值对 del dict1["name"] print(dict1) # 删除key等于"age"对应的键值对 del dict1["age"] print(dict1) # 删除key等于"sing_dog"对应的键值对 del dict1["sing_dog"] print(dict1) ''' 输出结果: {'name': 'zhangsan', 'age': 38, 'sing_dog': True} {'age': 38, 'sing_dog': True} {'sing_dog': True} {} '''dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典 print(dict1) # 输出删除之前的字典 # 删除key等于"name"对应的键值对 del dict1["name"] print(dict1) # 删除key等于"age"对应的键值对 del dict1["age"] print(dict1) # 删除key等于"sing_dog"对应的键值对 del dict1["sing_dog"] print(dict1) ''' 输出结果: {'name': 'zhangsan', 'age': 38, 'sing_dog': True} {'age': 38, 'sing_dog': True} {'sing_dog': True} {} '''
五.Python 字典 dict 修改数据
- 字典是无序的,每个键值对没有索引值,这也是字典与字符串/列表/元祖的区别;
- 修改字典中的键值对数据,操作和删除数据一样,直接根据键值对中的 key 值操作即可;
dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典print(dict1) # 输出字典# 修改key等于"name"对应的valuedict1["name"] = "隔壁老王"print(dict1) # 输出字典# 修改key等于"age"对应的valuedict1["age"] = 18print(dict1) # 输出字典# 修改key等于"sing_dog"对应的valuedict1["sing_dog"] = Falseprint(dict1) # 输出字典'''输出结果:{'name': 'zhangsan', 'age': 38, 'sing_dog': True}{'name': '隔壁老王', 'age': 38, 'sing_dog': True}{'name': '隔壁老王', 'age': 18, 'sing_dog': True}{'name': '隔壁老王', 'age': 18, 'sing_dog': False}'''dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典 print(dict1) # 输出字典 # 修改key等于"name"对应的value dict1["name"] = "隔壁老王" print(dict1) # 输出字典 # 修改key等于"age"对应的value dict1["age"] = 18 print(dict1) # 输出字典 # 修改key等于"sing_dog"对应的value dict1["sing_dog"] = False print(dict1) # 输出字典 ''' 输出结果: {'name': 'zhangsan', 'age': 38, 'sing_dog': True} {'name': '隔壁老王', 'age': 38, 'sing_dog': True} {'name': '隔壁老王', 'age': 18, 'sing_dog': True} {'name': '隔壁老王', 'age': 18, 'sing_dog': False} '''dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典 print(dict1) # 输出字典 # 修改key等于"name"对应的value dict1["name"] = "隔壁老王" print(dict1) # 输出字典 # 修改key等于"age"对应的value dict1["age"] = 18 print(dict1) # 输出字典 # 修改key等于"sing_dog"对应的value dict1["sing_dog"] = False print(dict1) # 输出字典 ''' 输出结果: {'name': 'zhangsan', 'age': 38, 'sing_dog': True} {'name': '隔壁老王', 'age': 38, 'sing_dog': True} {'name': '隔壁老王', 'age': 18, 'sing_dog': True} {'name': '隔壁老王', 'age': 18, 'sing_dog': False} '''
六.Python 字典 dict 查询数据
- 字典是无序的,每个键值对没有索引值,这也是字典与字符串/列表/元祖的区别;
- 查询字典中的键值对数据,操作和删除数据/修改数据一样,直接根据键值对中的 key 值操作即可;
dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典print(dict1) # 输出字典# 查询key等于"name"对应的valueprint(dict1["name"])# 查询key等于"age"对应的valueprint(dict1["age"])# 查询key等于"sing_dog"对应的valueprint(dict1["sing_dog"])'''输出结果:{'name': 'zhangsan', 'age': 38, 'sing_dog': True}zhangsan38True'''dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典 print(dict1) # 输出字典 # 查询key等于"name"对应的value print(dict1["name"]) # 查询key等于"age"对应的value print(dict1["age"]) # 查询key等于"sing_dog"对应的value print(dict1["sing_dog"]) ''' 输出结果: {'name': 'zhangsan', 'age': 38, 'sing_dog': True} zhangsan 38 True '''dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典 print(dict1) # 输出字典 # 查询key等于"name"对应的value print(dict1["name"]) # 查询key等于"age"对应的value print(dict1["age"]) # 查询key等于"sing_dog"对应的value print(dict1["sing_dog"]) ''' 输出结果: {'name': 'zhangsan', 'age': 38, 'sing_dog': True} zhangsan 38 True '''
七.Python 字典 dict 常用函数
- 1.update 函数 – 将一个字典添加到另外一个字典的末尾,把两个字典合并到一个字典;
- 2.clear 函数 – 清空字典;
dict1 = {"name":"zhangsan","age":38} # 定义一个字典print(dict1) # 输出字典dict2 = {"sing_dog":True} # 定义一个字典print(dict2)print("***"*20) # 小窍门:直接答应60个*# update()函数:将一个字典添加到另外一个字典的末尾dict1.update(dict2)print(dict1) # 输出字典print("***"*20) # 小窍门:直接答应60个*# 情况字典dict1dict1.clear()print(dict1) # 空字典# 情况字典dict2dict2.clear()print(dict2) # 空字典'''输出结果:{'name': 'zhangsan', 'age': 38}{'sing_dog': True}************************************************************{'name': 'zhangsan', 'age': 38, 'sing_dog': True}************************************************************{}{}'''dict1 = {"name":"zhangsan","age":38} # 定义一个字典 print(dict1) # 输出字典 dict2 = {"sing_dog":True} # 定义一个字典 print(dict2) print("***"*20) # 小窍门:直接答应60个* # update()函数:将一个字典添加到另外一个字典的末尾 dict1.update(dict2) print(dict1) # 输出字典 print("***"*20) # 小窍门:直接答应60个* # 情况字典dict1 dict1.clear() print(dict1) # 空字典 # 情况字典dict2 dict2.clear() print(dict2) # 空字典 ''' 输出结果: {'name': 'zhangsan', 'age': 38} {'sing_dog': True} ************************************************************ {'name': 'zhangsan', 'age': 38, 'sing_dog': True} ************************************************************ {} {} '''dict1 = {"name":"zhangsan","age":38} # 定义一个字典 print(dict1) # 输出字典 dict2 = {"sing_dog":True} # 定义一个字典 print(dict2) print("***"*20) # 小窍门:直接答应60个* # update()函数:将一个字典添加到另外一个字典的末尾 dict1.update(dict2) print(dict1) # 输出字典 print("***"*20) # 小窍门:直接答应60个* # 情况字典dict1 dict1.clear() print(dict1) # 空字典 # 情况字典dict2 dict2.clear() print(dict2) # 空字典 ''' 输出结果: {'name': 'zhangsan', 'age': 38} {'sing_dog': True} ************************************************************ {'name': 'zhangsan', 'age': 38, 'sing_dog': True} ************************************************************ {} {} '''
八.Python 字典 dict 遍历
1.使用 dict.items 方法遍历字典
dict.items 方法的返回值是一个元组 tuple,等价于遍历元组 tuple ,示例代码如下:
dict1 = {"name":"zhangsan","age":38,"sing_dog":True,"height":"155cm"} # 定义一个字典print(dict1) # 输出字典print("***"*20) # 小窍门:直接答应60个*# dict.items()方法,返回元组数据,类似遍历元组操作for x in dict1.items():print(x,type(x))print("***" * 20) # 小窍门:直接答应60个*# dict.items()方法经典写法,直接获取key/valuesfor x,y in dict1.items():print(x,y)'''输出结果:{'name': 'zhangsan', 'age': 38, 'sing_dog': True, 'height': '155cm'}************************************************************('name', 'zhangsan') <class 'tuple'>('age', 38) <class 'tuple'>('sing_dog', True) <class 'tuple'>('height', '155cm') <class 'tuple'>************************************************************name zhangsanage 38sing_dog Trueheight 155cm'''dict1 = {"name":"zhangsan","age":38,"sing_dog":True,"height":"155cm"} # 定义一个字典 print(dict1) # 输出字典 print("***"*20) # 小窍门:直接答应60个* # dict.items()方法,返回元组数据,类似遍历元组操作 for x in dict1.items(): print(x,type(x)) print("***" * 20) # 小窍门:直接答应60个* # dict.items()方法经典写法,直接获取key/values for x,y in dict1.items(): print(x,y) ''' 输出结果: {'name': 'zhangsan', 'age': 38, 'sing_dog': True, 'height': '155cm'} ************************************************************ ('name', 'zhangsan') <class 'tuple'> ('age', 38) <class 'tuple'> ('sing_dog', True) <class 'tuple'> ('height', '155cm') <class 'tuple'> ************************************************************ name zhangsan age 38 sing_dog True height 155cm '''dict1 = {"name":"zhangsan","age":38,"sing_dog":True,"height":"155cm"} # 定义一个字典 print(dict1) # 输出字典 print("***"*20) # 小窍门:直接答应60个* # dict.items()方法,返回元组数据,类似遍历元组操作 for x in dict1.items(): print(x,type(x)) print("***" * 20) # 小窍门:直接答应60个* # dict.items()方法经典写法,直接获取key/values for x,y in dict1.items(): print(x,y) ''' 输出结果: {'name': 'zhangsan', 'age': 38, 'sing_dog': True, 'height': '155cm'} ************************************************************ ('name', 'zhangsan') <class 'tuple'> ('age', 38) <class 'tuple'> ('sing_dog', True) <class 'tuple'> ('height', '155cm') <class 'tuple'> ************************************************************ name zhangsan age 38 sing_dog True height 155cm '''
2.根据字典中key或者value遍历字典
dict1 = {"name":"zhangsan","age":38,"sing_dog":True,"height":"155cm"} # 定义一个字典print(dict1) # 输出字典print("***"*20) # 小窍门:直接答应60个*# 方法一:根据key值遍历for key in dict1.keys():print(key ,dict1[key]) # dict1[key] 等价键值对中key对应的valueprint("***"*20) # 小窍门:直接答应60个*# 方法二:根据value值遍历for value in dict1.values():print(value )'''输出结果:{'name': 'zhangsan', 'age': 38, 'sing_dog': True, 'height': '155cm'}************************************************************name zhangsanage 38sing_dog Trueheight 155cm************************************************************zhangsan38True155cm'''dict1 = {"name":"zhangsan","age":38,"sing_dog":True,"height":"155cm"} # 定义一个字典 print(dict1) # 输出字典 print("***"*20) # 小窍门:直接答应60个* # 方法一:根据key值遍历 for key in dict1.keys(): print(key ,dict1[key]) # dict1[key] 等价键值对中key对应的value print("***"*20) # 小窍门:直接答应60个* # 方法二:根据value值遍历 for value in dict1.values(): print(value ) ''' 输出结果: {'name': 'zhangsan', 'age': 38, 'sing_dog': True, 'height': '155cm'} ************************************************************ name zhangsan age 38 sing_dog True height 155cm ************************************************************ zhangsan 38 True 155cm '''dict1 = {"name":"zhangsan","age":38,"sing_dog":True,"height":"155cm"} # 定义一个字典 print(dict1) # 输出字典 print("***"*20) # 小窍门:直接答应60个* # 方法一:根据key值遍历 for key in dict1.keys(): print(key ,dict1[key]) # dict1[key] 等价键值对中key对应的value print("***"*20) # 小窍门:直接答应60个* # 方法二:根据value值遍历 for value in dict1.values(): print(value ) ''' 输出结果: {'name': 'zhangsan', 'age': 38, 'sing_dog': True, 'height': '155cm'} ************************************************************ name zhangsan age 38 sing_dog True height 155cm ************************************************************ zhangsan 38 True 155cm '''
九.猜你喜欢
- Python 简介
- Python Pycharm Anacanda 区别
- Python2.x 和 Python3.x,如何选择?
- Python 配置环境
- Python Hello World入门
- Python 代码注释
- Python 中文编码
- Anaconda是什么?Anconda下载安装教程
- Pycharm 提示:this license **** has been cancelled
- Pycharm设置开发模板/字体大小/背景颜色
- Python 列表 list
- Python 元组 tuple
ChatGPT 3.5 国内中文镜像站免费使用啦
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容