Dotcpp  >  编程教程  >  Python核心语法  >  Python字典及基础操作

Python字典及基础操作

点击打开在线编译器,边学边练

前面我们学习了Python的列表和元组,如果你用心的学习了前面的内容并通过相关习题进行了一定的训练,那么接下来的学习会水到渠成。在Python中我们一定要明白一点,Python是一种解释型语言,因此它会提供很多人性化的工具给我们使用,接下来的几节我们来学习一个新的数据类型——字典

字典和列表和元组不同,字典中存储的是一组数据,也就是说字典中的每个数据都包含了两个部分,大家可以这么理解,字典中存放了一个学生名字,每个学生的名字前面都对应了一个学号,我们可以把学号理解为‘键’,姓名理解为‘值’。

下面介绍几点字典的特性:

1) 字典是没有顺序的,是任意对象的无序集合。

2) 字典的键是唯一的,不能多次出现,多次出现时取最后一个值。

3) 键是不可变的。

4) 字典中的元素可增删。

5) 因为没有顺序,所以不存在索引。

1. 字典的形式及创建

通过学生姓名那个例子,已经提到过字典每个元素包含2个部分,他们分别是‘’和‘’,键和值之间用‘:’隔开,两个元素之间用‘,’隔开。

它的语法形式为:

my_dict = {‘key’ : ‘value’,’key1’ = ‘value1’....}

其中my_dict 为我们要创建的字典,key为键,value为键对应的值,他们可以是任何数类型。

创建空字典的方式为:

>>> my_dict = {}#直接进行创建
>>> my_dict
{}
>>> type(my_dict)#看一下它的类型
<class 'dict'>

我们来创建一个字典,字典里有5个学号分别为1001,1002,1003,1004,1005,每个学号对应的名字为‘李华’,‘张三’,‘小雪’,‘小张’,‘小明’。

>>> my_dict = {1001:'李华',1002:'张三',1003:'小雪',1004:'小张',1005:'小明'}
>>> my_dict#交互模式下输人名字是直接访问输出
{1001: '李华', 1002: '张三', 1003: '小雪', 1004: '小张', 1005: '小明'}

字典的形式大致就是这样,每个元素对应两个部分,前面的为‘键’,后面的为‘值’。

要注意键是不可以修改的,而值是可以变的,因此键要取不可变类型的数据。

2. 字典元素的访问

在字典中访问元素一般是通过访问其键的形式来获取它对应的值。

我们继续使用上面创建的字典,我们进行访问其值:

>>> my_dict = {1001:'李华',1002:'张三',1003:'小雪',1004:'小张',1005:'小明'}
>>> my_dict[1001]#访问键为1001的值
'李华'
>>> my_dict[1005]#访问键为1005的值
'小明'
>>> my_dict[1006]#访问键为1006的值,此时字典里没有1006,故报错。
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 1006

3. 判断字典中的值是否存在

在上面我们了解到当我们访问一个不存在的键的时候会出现错误,我们可以采用一种判断来判别字典中是否存在对应的键。

判断是否存再我们使用的是innot in

使用in:

>>> my_dict = {1001:'李华',1002:'张三',1003:'小雪',1004:'小张',1005:'小明'}
>>> if 1001 in my_dict:#如果my_dict中存在1001这个键就执行下面语句
       print(my_dict[1001])
>>> 李华

使用not in:

>>> my_dict = {1001:'李华',1002:'张三',1003:'小雪',1004:'小张',1005:'小明'}
>>> if 1006 not in my_dict:#如果my_dict中吧存在1006这个键就执行下语句
       print('不存在1006这个键')
>>> 不存在1006这个键

简单的使用in和not in 可以确保我们在访问的时候减少错误的发生,需要注意在in和not in操作的时候,字符串的比较需要区分大小写。

4. 添加元素

因为字典是可变的,所以我们可以进行增加删除和修改等操作。对应的语法形式分别为:

my_dict[‘newkey’] = ‘newvalue’
>>> my_dict = {1001:'李华',1002:'张三',1003:'小雪',1004:'小张',1005:'小明'}
>>> my_dict [1006] = '小李'#增加键1006,对应值‘小李’
>>> my_dict{1001: '李华', 1002: '张三', 1003: '小雪', 1004: '小张', 1005: '小明', 1006
: '小李'}

增加元素就是直接通过键值对进行添加。

5. 删除元素

删除元素我们还是通过del语句进行删除,删除的是一整对元素,即包括键和值。

语法格式:

del my_list[’key’]
>>> my_dict{1001: '李华', 1002: '张三', 1003: '小雪', 1004: '小张', 1005: '小明', 1006
: '小李'}
>>> del my_dict[1001]#删除键为1001的一组元素
>>> del my_dict[1002]#删除键为1002的一组元素
>>> my_dict{1003: '小雪', 1004: '小张', 1005: '小明', 1006: '小李'}

6. 修改元素

修改元素就等于是直接覆盖了现有元素,它的形式和添加元素的格式类似,

格式为:

my_dict[‘key’] = ‘newvalue’
>>> my_dict
{1003: '小雪', 1004: '小张', 1005: '小明', 1006: '小李'}
>>> my_dict[1003] = '小天'#把键1003的值修改为‘小天’
>>> my_dict
{1003: '小天', 1004: '小张', 1005: '小明', 1006: '小李'}

这节我们先了解一下字典的基础操作,下一节来学习一些字典的相关方法。



本文固定URL:https://www.dotcpp.com/course/246

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Python教程
第一章 Python入门
第二章 Python基础语法
第三章 Python入门语法
第四章 Python核心语法
第五章 Python函数
第六章 Python面向对象编程
第七章 Python模块
第八章 Python异常处理和程序调试
第九章 Python文件及目录操作
第十章 PythonGUI编程
第十一章 Python进程和线程
第十二章 Python数据库管理
第十三章 Python算法
第十四章 Python爬虫
第十五章 Python实战项目
第十六章 后记
Dotcpp在线编译      (登录可减少运行等待时间)