山地人

Python 字典(Dict)

山地人
山地人
2021-07-16

字典

字典是一种键值对(Key-Value)的存储结构,字典里的每一个key都会有一个value与之对应。字典里的每一个key键必须是唯一的,但对于value值可以重复。查找字典里的元素的时候,通过key来查找其对应的值。

和列表不同,列表这种结构在遍历的时候性能比较高,但对于频繁读写数据上字典的性能更优。而遍历字典中的每一项元素,字典就不如列表了。

创建字典

使用一对{}就可以创建一个字典。字典里的每一项时key: value这样的形式,其中键的类型可以是数字或者字符串,对于值可以是任意类型。

emptyDict = {}
programLanguages = { 1:"Python", 2:"JavaScript" }
student = { 'name': "张三", 'age': 18, 'hoppy': ["运动", "编程", "音乐"] }

启动终端,尝试创建一些字典对象。

访问字典元素

要获取字典中的值,有两种方法:一种是通过[key]索引方式来获取值;另外一种是通过字典的get(key)方式来获取值。

programLanguages = { 1:"Python", 2:"JavaScript" }
programLanguages[1]
programLanguages.get(2)
student = { 'name': "张三", 'age': 18, 'hoppy': ["运动", "编程", "音乐"] }
student['name']
student.get('name')

启动终端,尝试用两种方式获取student中的不同key的值。

添加新键值

字典是一种可变数据类型,因此,我们可以往一个已有的字典中添加新记录。

programLanguages[3] = "Golang"
student["height"] = 1.8

启动终端,试试往programLanguagesstudent上添加一些新记录。

更新字典的值

和添加新记录一样,你也可以获取现有的key,更新其对应的值。

programLanguages[1] = "C++"
student["name"] = "李四"

启动终端,试试修改programLanguagesstudent上原有键的值。

删除字典元素

对于字典中存在的键值对,也可以进行删除。

del programLanguages[1]
del student['name']
# 删除指定键,并返回对应值
student.pop("age")
# 清空全部
student.clear()

启动终端,使用不同方式来删除键值对

遍历字典元素

和列表一样,这里我们也对字典进行使用几种方法进行遍历。

字典的相关方法

方法名说明例子
clear()清除字典中所有元素student.clear()
copy()返回一个浅层克隆的字典对象student.copy()
get(key[,d])返回key对应的值,没有返回d默认值student.get(“name”)
fromkeys(seq[,v])
items()返回一个包含所有键值对的dict_items对象student.items()
keys()返回一个包含所有键的dict_keys对象student.keys()
values()返回一个包含所有值的dict_values对象student.values()
pop(key[,d])删除key对应项,并把其对应的值返回,如未找到但设置的默认值则返回默认值。student.pop(“name”)
popitem()删除并返回任意项(key, value)student.popitem()
setdefault(key[,d])对指定key设置默认值student.setdefault(‘name’,‘无名’)
update([other])使用指定的键值对更新字典中的键值对student.update({“name”:“李四”})

至此,本篇教程也到了该和你说再见的时候了,我们下期再见。

学完本篇互动教程,如果你觉得体验不错,可以把网页链接发送给你的小伙伴,让他/她也来感受一下。当然,你也可以继续看看网站上其他的的互动教程,希望`idev365`能够给你带来收获。

学习教程的过程中碰到了问题,或者对idev365有什么改进意见和想法,欢迎加入idev365微信内测群,和山地人交流你的想法。