请仔细阅读哦!!! |
文章目录
- 前言
- 一、Python字典的创建与删除
- 1.字典的创建
- 2.字典的删除
- 二、Python字典的访问
- 1.通过“键值对”访问字典
- 2.遍历字典
- 三、Python字典的添加、修改和删除元素
- 1.字典元素的添加
- 2.修改字典元素
- 3.删除字典元素
前言
前面写了关于Python的列表、元组相关知识,这次来写写字典吧。字典与列表类似,也是可变序列,但与列表不同的是,字典是无序的可变序列,保存的内容是以“键值对”的形式存放的。字典有以下几个主要特征:
1)只能通过键来读取,不能用索引的方式
2)字典是任意对象的无序集合
3)字典可变且可以任意嵌套
4)字典中的键必须唯一且不可变
一、Python字典的创建与删除
1.字典的创建
当需要定义一个含有元素的字典时,则要求每一个元素都包含两个部分“键”和“值”,并且“键”(key)和“值”(value)之间使用冒号分隔,相邻两个元素使用逗号分隔,所有元素放在一个大括号里面“{}”,语法格式如下:
dict_name={‘key1’ : ‘value1’ , ‘key2’ : ‘value2’ , … , ‘keyn’ : ‘valuen’ ,}
字典的创建与列表元组等都类似,也可以直接创建一个空的字典
dict_name={}
或者
dict_name=dict()
Python的 dict()方法还可以通过已有的数据快速创建字典:
①通过映射函数创建字典
语法格式如下:
dict_name=dict(zip(list_1,list_2))
zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。如果想得到元组,可以使用tuple()函数将zip对象转换为元组;如果想得到列表,则可以使用list()函数将其转换为列表。
例:
运行结果:
②通过给定的“关键字参数”创建字典
语法格式如下:
dict_name=dict(key1=value1 , key2=value2 ,…, keyn=valuen)
例:
运行结果:
2.字典的删除
删除整个字典可以直接使用del语句
del dict_name
如果只想删除字典中的全部元素,可以使用字典对象的clear()方法,使用后,原字典将变成空字典
语法格式如下:
dict_name.clear()
除了使用这两种方法外,还可以使用pop()方法删除并返回指定“键”的元素,以及popitem()方法删除并返回字典中的一个元素。
二、Python字典的访问
1.通过“键值对”访问字典
在Python中,可以直接用print()函数将字典的内容输出,如果不需要将字典全部内容输出,想根据指定的键来得到相应的结果,则往往通过下标来实现对字典元素的访问,要注意的是这里的下标不是像列表、元组的索引号,而是“键”
例:
运行结果:
上述方法获取字典元素是有缺点的,如果当需要获取指定的键的值在该字典中不存在时,结果会抛出异常,所以我们可以先通过使用if语句判断一下。但在Python中推荐的方法是字典对象的get()方法获取指定键的值。
语法格式如下:
dictionary.get(key,[default])
dictionary:为字典对象,即需要从中获取值的字典
key;表示字典的键
default:可选项,用于指定当指定的“键”不存在时,返回一个默认值,如果省略,则返回None
例:
运行结果:
2.遍历字典
因为字典是以“键值对”的形式存储数据的,所以在使用字典时需要获取到这些“键值对”。Python提供了遍历字典的方法,如下:
①使用字典对象的items()方法
语法格式如下:
dict_name.items()
注意的是,这个方法运行后返回值是可遍历的(“键值对”)的元组列表,所以想要得到具体的“键值对”,需要通过for循环遍历该元组列表
例:
运行结果:
如果想要得到具体的每个键和值可以采用如下代码实现:
运行结果:
②使用字典对象的keys()、values()方法
此方法使用方法与items()方法类似,只是返回值不一样,keys()方法返回的是字典中所有键的列表,values()方法返回的是字典中所有值的列表
例:
运行结果:
三、Python字典的添加、修改和删除元素
因为字典是可变序列,所以很多时候我们需要对字典进行一系列操作,如添加、修改和删除元素,那么有什么方法可以实现呢?
1.字典元素的添加
语法格式如下:
dict_name[key]=value
例:
运行结果:
2.修改字典元素
因为字典中“键”必须是唯一的,所以当我们需要修改元素时,可以使用新的“值”去代替原来该“键”的值,代码如下:
运行结果:
3.删除字典元素
上面讲了如何删除字典,如果只想删除字典中指定“键”的元素,那么可以这样使用del语句;
del dict_name[key]
加油加油!!! |