🔥 信仰:一个人走得远了,就会忘记自己为了什么而出发,希望你可以不忘初心,不要随波逐流,一直走下去
🎶 博客主页:程序喵正在路上 的博客主页
🦋 欢迎关注🖱点赞👍收藏🌟留言🐾
🦄 本文由 程序喵正在路上 原创,CSDN首发!
💖 系列专栏:Python学习
🌠 首发时间:2022年5月7日
✅ 如果觉得博主的文章还不错的话,希望小伙伴们三连支持一下哦
字典类型的概念
列表是存储和检索数据的有序序列。当访问列表中的元素时,可以通过整数的索引来查找它,这个索引是元素在列表中的序号,列表的索引模式是 “<整数序号>查找<被索引内容>“。
很多应用程序需要更灵活的信息查找方式,例如,在检索学生或员工信息时,需要基于身份证号码进行查找,而不是信息存储的序号。在编程术语中,根据一个信息查找另一个信息的方式构成了 “键值对”,它表示索引用的键和对应的值构成的成对关系,即通过一个特定的键 (身份证号码) 来访问值 (学生信息)。实际应用中有很多 “键值对” 的例子,例如,姓名和电话号码、用户名和密码、邮政编码和运输成本、国家名称和首都等。由于键不是序号,无法使用列表类型进行有效存储和索引。
通过任意键信息查找一组数据中值信息的过程叫映射,Python 语言中通过字典实现映射。Python 语言中的字典可以通过大括号 ({}) 建立,建立模式如下:
{<键1>:<值1>, <键2>:<值2>, … ,<键n>:<值n>}
其中,键和值通过冒号连接,不同键值对通过逗号隔开。从 Python 设计角度考虑,由于大括号 {} 可以表示集合,因此字典类型也具有和集合类似的性质,即键值对之间没有顺序且不能重复。简单说,可以把字典看成元素是键值对的集合。
下面是一个简单的字典,它存储国家和首都的键值对:
Dcountry = {"中国": "北京", "美国": "华盛顿", "法国": "巴黎"}
print(Dcountry)
程序执行结果如下:
{‘中国’: ‘北京’, ‘美国’: ‘华盛顿’, ‘法国’: ‘巴黎’}
注意到,字典打印出来的顺序有可能与创建之初的顺序不同,这不是错误。字典是集合类型的延续,所以各个元素并没有顺序之分。如果想保持一个集合中元素的顺序,需要使用列表,而不是字典。
字典最主要的用法是查找与特定键相对应的值,这通过索引符号来实现。例如:
print(Dcountry["中国"])
程序执行结果如下:
北京
一般来说, 字典中键值对的访问模式如下,采用中括号格式:
<值> = <字典变量> [<键>]
字典中对某个键值的修改可以通过中括号的访问和赋值实现,例如:总结起来,字典是存储可变数量键值对的数据结构,键和值可以是任意数据类型,包括程序自定义的类型。Python 字典效率非常高,甚至可以存储几十万项内容。
这里我们讲一下索引:
索引是按照一定顺序检索内容的体系。编程语言的索引主要包括两类:数字索引,也称为位置索引;字符索引,也称为单词索引。数字索引采用数字作为索引数的方法,可以通过整数序号找到内容。字符索引采用字符作为索引词,通过具体的索引词找到数据,例如,现实生活中的汉语词典,通过汉语词找到释义。Python 语言中,字符串、列表、元组等都采用数字索引,字典采用字符索引。
字典类型的操作
与列表相似,Python 字典也有非常灵活的操作方法。使用大括号可以创建字典,并指定初始值,通过中括号可以增加新的元素,例如:
Dcountry = {"中国": "北京", "美国": "华盛顿", "法国": "巴黎"}
Dcountry["英国"] = "伦敦"
print(Dcountry)
程序执行结果如下:
{‘中国’: ‘北京’, ‘美国’: ‘华盛顿’, ‘法国’: ‘巴黎’, ‘英国’: ‘伦敦’}
直接使用大括号 ({}) 可以创建一个空的字典,并通过中括号 ([]) 向其增加元素,例如:
Dp = {}
Dp["2^10"] = 1024
print(Dp)
程序执行结果如下:
{‘2^10’: 1024}
需要注意的是,尽管集合类型也用大括号表示,直接使用大括号 ({}) 生成一个空的字典,而不是集合。生成空集合需要使用函数 set()。
字典在 Python 内部也已采用面向对象方式实现,因此也有一些对应的方法, 采用 < a >.< b > () 格式,此外,还有一些函数能够用于操作字典,这些函数和方法如下表所示:
函数和方法 | 描述 |
---|---|
< d >.keys() | 返回所有的键信息 |
< d >.values() | 返回所有的值信息 |
< d >.items() | 返回所有的键值对 |
< d >.get(< key >,< default >) | 键存在则返回相应值,否则返回默认值 |
< d >.pop(< key >,< default >) | 键存在则返回相应值,同时删除键值对,否则返回默认值 |
< d >.popitem() | 随机从字典中取出一个键值对,以元组 (key, value) 形式返回 |
< d >.clear() | 删除所有的键值对 |
del < d >[< key >] | 删除字典中某一个键值对 |
< key > in < d > | 如果键在字典中则返回 True,否则返回 False |
上述方法的一些例子如下,如果希望 key()、values()、items() 方法返回列表类型,可以采用 list() 函数将返回值转换成列表。
Dcountry = {"中国": "北京", "美国": "华盛顿", "法国": "巴黎"}
print(Dcountry.keys())
print(list(Dcountry.values()))
print(Dcountry.items())
print("中国" in Dcountry) # 只对键进行判断
print(Dcountry.get("美国", "悉尼")) # ‘美国’在字典中存在
print(Dcountry.get("澳大利亚", "悉尼")) # ‘澳大利亚’在字典中不存在
每个语句执行结果如下:
Dcountry = {"中国": "北京", "美国": "华盛顿", "法国": "巴黎"}
print(Dcountry.keys())
dict_keys([‘中国’, ‘美国’, ‘法国’])
print(list(Dcountry.values()))
[‘北京’, ‘华盛顿’, ‘巴黎’]
print(Dcountry.items())
dict_items([(‘中国’, ‘北京’), (‘美国’, ‘华盛顿’), (‘法国’, ‘巴黎’)])
print("中国" in Dcountry) # 只对键进行判断
True
print(Dcountry.get("美国", "悉尼")) # ‘美国’在字典中存在
华盛顿
print(Dcountry.get("澳大利亚", "悉尼")) # ‘澳大利亚’在字典中不存在
悉尼
与其他组合类型一一样, 字典可以通过 for-in 语句对其元素进行遍历,基本语法结构如下:
for <变量名> in <字典名>:
<语句块>
由于键值对中的键相当于索引,因此,for 循环返回的变量名是字典的索引值。如果需要获得键对应的值,可以在语句块中通过 get() 方法获得。字典是实现键值对映射的数据结构,它采用固定数据类型的键数据作为索引,十分灵活,具有处理任意长度、混合类型键值对的能力。
为了更好地认识和使用字典,请理解如下一些基本原则。
(1) 字典是一个键值对的集合,该集合以键为索引,一个键信息只对应一个值信息。
(2) 字典中元素以键信息为索引访问。
(3) 字典长度是可变的,可以通过对键信息赋值实现增加或修改键值对。
🧸这次的分享就到这里啦,继续加油哦^^
🍭有出错的地方欢迎在评论区指出来,共同进步,谢谢啦