前面两期介绍了一种Python的集合数据类型:列表(list)和元组(tuple),本期将继续介绍字典(dictionary)。
01
什么是字典(dictionary)?
字典(dictionary)与列表(list)均是Python中可灵活应用和处理的数据结构类型。字典由“键:值(key:value)”组成,使用大括号“{}”标识。字典中的键(value)是唯一不可重复的。如class = {"Tim":1,"Hzeros":2,"Nana":3}。
字典与列表的区别在于:列表是有序的,每个值有一个索引,并可以通过索引进行修改、删除等操作;字典是无序的对象集合。
02
如何创建字典?
字典中的key通常是唯一的,若存在相同的key,后面的key会替换前面的key,但value并不需要唯一。key和value中间以冒号:隔开,不同的key:value对之间用逗号隔开,整个字典是由大括号{}括起来的。
如:
classes1 = {"Tim":1,"Hzeros":2,"Nana":3}
也可以使用dict函数创建字典:
classes2 = dict(Jack=4,Nacy=5)
当然,字典的值可以是一个列表(list):
classes3 = {"Jack":[6,7,8],"Cycy":[9,10]}
print (classes3)
type(classes3)
输出为:
{'Cycy': [9, 10], 'Jack': [6, 7, 8]}
dict
ps:键必须不可变,所以可以用数字、字符串或元组作为键,但是不能用列表。
03
如何访问字典中的值?
访问字典中的值,只需按照字典名["键名"]的格式即可访问。如以上classes1和classes3为例:
print ("Hzeors的号码为:", classes1["Hzeros"])
print ("Jack有多个号码,分别是:", classes3["Jack"])
输出为:
Hzeors的号码为: 2
Jack有多个号码,分别是: [6, 7, 8]
NEXT
如果访问的字典里没有对应的键,就会报错!
print (classes1["Tom"])
Traceback(most recent call last):
File "", line 1, in
print (classes1["Tom"])
KeyError:'Tom'
NEXT
当然,可以使用in语句判断键是否存在于字典中,或者使用not in语句判断键是否不存在于字典中:
"Tim" in classes1
"Tim" not in classes1
"Tom" in classes1
"Tom" not in classes1
输出为:
True
False
False
True
Python 2.2 版本以前可以用 字典名.has_key("键名")判断,但官方不推荐此方法,且2.2后的版本已删除此方法。
04
如何更新字典?
增加键-值(key-value)对
直接使用字典名["新键名"] = 值即可增加键-值对:
classes1["Jerry"] = 4
print (classes1)
输出为:
{'Hzeros': 2, 'Jerry': 4, 'Tim': 1, 'Nana': 3}
更新、修改键-值(key-value)对
更新或修改键-值对,只需指定指定字典中的键名,直接赋予新值即可:
classes1["Jerry"] = 11
print (classes1)
输出为:
{'Hzeros': 2, 'Jerry': 11, 'Tim': 1, 'Nana': 3}
删除键-值(key-value)对
可使用del语句删除指定的键值对,也可使用字典名.clear()方法情况字典内所有内容:
classes3 = {"Jack":[6,7,8],"Cycy":[9,10]}
print (classes3)
del classes3["Jack"]
print (classes3)
classes3.clear()
print (classes3)
输出为:
{'Cycy': [9, 10], 'Jack': [6, 7, 8]}
{'Cycy': [9, 10]}
{}
当然,del语句还可以直接删除整个字典,在不指定键名的情况下:
del classes3
print(classes3)
删除后,classes3字典不存在:
Traceback(most recent call last):
File"", line 1, in
print(classes3)
NameError:name 'classes3' is not defined
05
字典的内置函数
06
字典的常用方法
07
历遍字典
历遍字典是指将字典的内容逐个输出,可通过for循环实现。
遍历字典的key(键)
输入为:
classes1 = {"Tim":1,"Hzeros":2,"Nana":3}
type(classes1)
for key in classes1.keys():
print(key)
输出为:
dict
Tim
Nana
Hzeros
遍历字典的value(值)
输入为:
for value in classes1.values():
print(value)
输出为:
1
3
2
遍历字典的key-value(键-值对)
输入为:
for key,value in classes1.items():
print(key,value)
输出为:
Tim 1
Nana 3
Hzeros 2
微信ID:xiaohulearning
谁的征途,不是星辰湖海。欢迎关注!
领取专属 10元无门槛券
私享最新 技术干货