字典是一种常见的数据结构,通常在别的语言里,可能会称呼它为哈希表,HashMap。无论怎么样,字典其实就是键值对。是以key-value的形式存在的。
在 Python 中,字典是一系列键值对。每个键都与一个值相关联,你可使用键来访问相关联的值。与键相关联的值可以是数、字符串、列表乃至字典。事实上,可将任何 Python 对象用作字典中的值。
在python中,字典被花括号标识。放在花括号里的键值对就是字典。下面是一个字典的例子。
color_hash = {"绿色":"green","红色":"red","蓝色":"blue"}
print(color_hash)
程序执行结果如下所示:
下面是对字典常见的操作方式。
color_hash = {"绿色":"green","红色":"red","蓝色":"blue"}
print(color_hash)
print(color_hash["绿色"]) # 根据键,来访问值。
color_hash["黄色"] = "yellow" # 增加一个新的键值对
print(color_hash)
color_hash["绿色"] = "Green" # 修改键值对中的值,不存在修改键的方法,只能是新建键值对。
print(color_hash["绿色"])
程序执行结果如下所示:
字典除了上面的应用场景,还可以用来保存一些身份信息之类的东西,例如一个人的年龄,性别,身高等等信息,就可以放在一个字典中保存。定义一个空字典的场景也很常见,下面展示了如何定义一个空字典。
book_dict = {}
print(book_dict)
程序执行结果如下:
删除字典中的键值对,可以使用del语句来删除。例如下面的代码段:
del color_hash["红色"]
print(color_hash)
程序执行结果如下所示:
值得一提的还有,Python的字典,提供了get方式,来避免你获取不存在的键所对应的值。例如下面的例子。
black = color_hash.get("黑色") # 没有黑色这个键,但是不会报错。而是返回None
print(black)
# 如果找不到特殊颜色这个键,那么将会返回第二个参数所指定的值。
special_color = color_hash.get("特殊颜色", "很抱歉,没有特殊颜色")
print(special_color)
yellow = color_hash.get("黄色", "黄色") # 字典中存在这个键,那么将会返回字典中的值
print(yellow)
程序执行结果如下所示:
遍历字典,由于字典可能存放非常多的数据,因此遍历字典的操作也是常见的。遍历字典可以选择只遍历键或值,也可以键值对一起遍历。
personal_info = {
"姓名": "尼古拉斯·浩浩",
"性别": "男",
"年龄": 24,
"居住城市": "阿拉德大陆",
}
for info in personal_info: # 如果什么都不指定,默认遍历key
print(info)
print("\n")
for key in personal_info.keys(): # 只遍历key
print(key)
print("\n")
for value in personal_info.values(): # 只遍历value
print(value)
print("\n")
for key, value in personal_info.items(): # 遍历key-value
print(F"{key}:{value}")
程序执行结果如下所示:
从 Python 3.7 起,遍历字典时将按插入的顺序返回其中的元素。
在列表中嵌套字典或者是在字典中存储列表,以及字典中存储字典都是常用的数据格式。这在做Web开发的时候非常常见,尤其是当前后端之间采用Json来通信的时候,这在格式就非常常见。后端可以返回给前段Json数据格式,或者是JavaScript的数组形式。下面写几个典型的例子。
# 这是一个经典的返回给前段的Json格式的数据,在Python中可以很容易的用字典实现。
my_json = {"用户名":"尼古拉斯·赵四","ID":"xsq123657212","等级":"67","粉丝数":240,"点赞数":2000}
you_json = {"用户名":"尼古拉斯·赵四","ID":"xsq123657212","等级":"67","粉丝数":240,"点赞数":2000}
# JavaScript数组
my_array = [my_json,you_json]