Python 字典:成员以“键:值”对形式存在的数据类型
在Python程序中,字典是一种比较特别的数据类型,字典中每一个成员是以“键:值”对形式存在的。字典以大括号“{ }”包围,并且以“键:值”对的方式声明和存在的数据集合。 注意:字典与列表相比,最大的不同在于字典是无序的,其成员位置只是象征性的,在字典中通过键来访问成员,而不能通过其位置来访问该成员。
一、创建并访问字典
在Python程序中,字典可以存储任意类型对象。字典的每个键值“key:value”对之间必须用冒号“:”分隔,每个对之间用“,”分隔,整个字典包括在大括号“{ }”中。创建字典的语法格式如下所示:
d = {key : value1, key : value2}
对上述语法格式的具体说明如下所示:
- 字典是一系列“键:值”对构成的,每个键都与一个值相关联可以使用键来访问与之相关联的值;
- 在字典中可以存储任意个“键:值”对;
- 每个“key:value”键值对中键(key)必须是唯一的、不可变的;
- 键值可以取任何数据类型,可以是数字、字符串、字符串乃至字典。
以存储学生成绩为例:
dict = {'数学': '99','语文':'96','英语':'99'}
在Python程序中,要想获取某个键的值,可以通过访问键的方式来显示对应的值。例如:
dict = {'数学': '99','语文':'96','英语':'99'}
print("语文成绩是:",dict['语文'])
print("英语成绩是:",dict['英语'])
print("数学成绩是:",dict['数学'])
输出结果是: 注意:如果调用的字典中没有这个键。执行后会输出执行错误的提示。
二、向字典中添加数据
在Python程序中,字典是一种动态结构,可以随时在其中添加“键值”对。在添加“键值”对时,需要首先指定字典名,然后用中括号将键括起来,然后在最后写明这个键的值。例如在上例中添加两个“键值”对:
dict = {'数学': '99','语文':'96','英语':'99'}
print(dict)
dict['物理'] = 88 #添加物理成绩
dict['化学'] = 92 #添加化学成绩
print(dict)
输出结果是: 注意:Python不关心键值对的添加顺序,只关心键和值之间的关联关系。
三、修改字典
在Python程序中,要想修改字典中的值,需要首先指定字典名,然后使用中括号把将要修改的键和新值对应起来。例如:
dict = {'数学': '99','语文':'96','英语':'99'}
print(dict)
dict['物理'] = 88
dict['化学'] = 92
print(dict)
dict['语文'] = 98; #更新语文的值
print(dict)
输出结果是:
四、删除字典中的元素
在Python程序中,对于字典中不在需要的信息,可以使用del语句将相应的“键值”对信息彻底删除。在使用del语句时,必须指定字典名和要删除的键,例如
dict = {'数学': '99','语文':'96','英语':'99','体育': 100}
print(dict)
del dict['体育'] #删除键“体育”的值
print(dict)
输出结果是:
五、和字典有关的内置函数
在Python程序中,包含了几个和字典操作相关的内置函数,具体说明如下表:
函数 | 功能 |
---|
len(dict) | 计算字典元素个数,即键的总数 | str(dict) | 输出字典以可打印的字符串表示 | type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型 |
dict = {'数学': '99','语文':'96','英语':'99','体育': 100}
print(len(dict))
print(str(dict))
print(type(dict))
输出结果:
六、遍历字典
在Python程序中,一个字典可能只包含几个“键值”对,也可能包含数百万个“键值”对。因为字典可能包含大量的数据,所以Python支持对字典遍历。因为在字典中可以使用各种方式存储信息,所以可以通过多种方式遍历字典。
6.1 遍历字典中的所有键
在Python程序中,使用内置方法keys()能够以列表的形式返回一个字典中所有键。使用方法keys()的语法格式如下:
dict.keys()
方法keys()没有参数,只有返回值,返回一个字典所有的键。例如:
dict = {'数学': '99','语文':'96','英语':'99','体育': 100}
print('考试科目有:')
print(list(dict.keys()))
输出结果:
6.2 遍历字典中的所有值
在Python程序中,使用方法values()返回一个字典中所有值,而不包含任何键。使用方法values()的语法格式如下:
dict.values()
方法values()也没有参数,只有返回值,返回一个字典所有的值。例如:
dict = {'数学': '99','语文':'96','英语':'99','体育': 100}
print('考试成绩有:')
print(list(dict.values()))
注意:上述做法并没有考虑是否重复的问题。如果想剔除重复的项,可以使用集合(set)。集合类似于序列,但每个元素都必须是独一无二。
|