字典也是 Python常用的一种数据结构,与列表相似,可以储存多个元素,用于存放具有映射关系的数据,即存储的每个元素有key:value的对应关系,元素之间以逗号分隔。
字典相当于保存了两组数据,其中一组数据是关键数据,被称为key,另一组数据可通过key 来访问,称为value,字典中key和value的关联关系如下图
由于key是非常关键的数据,而且python需要通过key来访问value,因此字典中的key不允许重复。
- 创建字典
使用花括号语法创建字典,花括号中应包含多个key-value对,key与value之间用英文冒号隔开,多个key-value对之间用英文逗号隔开
示例
dictA = {"ali001":18, "ali002":19, "ali003":18} print(dictA) #输出字典 print(dictA["ali002"]) #输出key为ali002的值
结果输出
{'ali001': 18, 'ali002': 19, 'ali003': 18}
19
使用dict()函数创建字典,可以传入多个列表或元组参数作为key-value
示例
scoreListA = [("ali001", 98), ("ali002", 96.6), ("ali003", 100)] dictA = dict(scoreListA) #创建字典,包含3组key-value print(dictA) scoreListB = [["ali001", "BeiJing"], ["ali002", "ShangHai"], ["ali003", "HangZhou"]] dictB = dict(scoreListB) #创建字典,包含3组key-value print(dictB)
结果输出
{'ali001': 98, 'ali002': 96.6, 'ali003': 100}
{'ali001': 'BeiJing', 'ali002': 'ShangHai', 'ali003': 'HangZhou'}
- 字典元素操作
通过key访问value
通过key添加元素
通过key删除元素
通过key修改元素
通过key判断元素是否存在
示例
dictA = { 'ali001': 'BeiJing', 'ali002': 'ShangHai', 'ali003': 'HangZhou', 'ali004': 'NanJing', 'ali005': 'GuangZhou', 'ali006': 'XiaMen' } dictA["ali009"] = "HaiNan" #添加元素 del dictA["ali006"] #删除元素 dictA["ali001"] = "QingDao" print(dictA["ali003"]) #访问字典元素 print("ali006" in dictA) #判断元素ali006是否存在 print(dictA)
结果输出
HangZhou
False
{'ali001': 'QingDao', 'ali002': 'ShangHai', 'ali003': 'HangZhou', 'ali004': 'NanJing', 'ali005': 'GuangZhou', 'ali009': 'HaiNan'}
- 成员运算符
成员运算符in、not in用来查找某个变量的值是否在指定的序列中,主要用在字符串、元组列表和字典中
in:如果在指定的序列中找到值返回True,否则返回False
not in:如果在指定的序列中没有找到值返回True,否则返回False
示例
str = "My name is ali." listA = ["BeiJing", "NanJing", "ShangHai"] dictA = {"ali001":18, "ali002":19} print("name" in str) #查找name是否在字符串中 print("GuangZhou" not in listA) #查找GuangZhou是否在列表中 print("ali003" in dictA) #查找ali003是否在字典中
结果输出
True
True
False
- items()、keys()、values()函数
items()用于获取字典中的所有key-value对,返回dict_items对象
keys()用于获取字典中的所有key,返回dict_keys对象
values()用于获取字典中的所value,返回dict_values对象
示例
dictA = {'ali001': 'BeiJing', 'ali002': 'ShangHai', 'ali003': 'HangZhou'} print(dictA.items()) print(dictA.keys()) print(dictA.values())
结果输出
dict_items([('ali001', 'BeiJing'), ('ali002', 'ShangHai'), ('ali003', 'HangZhou')])
dict_keys(['ali001', 'ali002', 'ali003'])
dict_values(['BeiJing', 'ShangHai', 'HangZhou'])
可通过list()函数将对象转换成列表
print(list(dictA.items())) print(list(dictA.keys())) print(list(dictA.values()))
再执行一次,结果输出
[('ali001', 'BeiJing'), ('ali002', 'ShangHai'), ('ali003', 'HangZhou')]
['ali001', 'ali002', 'ali003']
['BeiJing', 'ShangHai', 'HangZhou']