Python基础回顾(7)——可以查的 字典

目录

前言

一、字典是什么?

1.建立一个字典

2.键值对

3.添加键值对

4.键值对的修改与删除

5.一个格式规范

二、如何遍历字典

1.遍历键值对

2.遍历字典的键

3.遍历字典的值

 总结


前言

        Python提供了一种不同于列表和元组的,可以存储、查找信息的方式,叫字典。本文将学习如何访问和修改字典中的信息。


一、字典是什么?

1.建立一个字典

        和列表与元组类似,字典也是一种存储信息的方式。与学习他俩的顺序类似,本文也先填鸭式介绍字典,从使用中总结内容。

Myself={'身高': 178, '体重': 160, '性别': '男'}
print(Myself['身高'])
print(Myself['性别'])
print(Myself['体重'])

        这段代码,我们建立了一个字典“Myself”,它保存了作者本人的一些信息,比如身高体重和性别。然后利用三次打印函数输出出来结果,如下所示:

         这段代码中的第一句,也就是赋值语句。将一个字典赋值给变量名“Myself”,

        于是,Myself的种类变为字典(dict),长度(len)为3,包含了三组元素。

        注意,这里似乎有六个字符或者整数型的数据,和三个冒号,却只有三组元素。

        再仔细看看字典中的元素,

       第一个元素  身高=178int。int的意思是整数,意思为身高的值为178.同理,体重的值为169,性别的值为字符(str)“男”。 

        找找规律:字典的元素用大括号包括起来。每一组冒号前后为字典的一个元素。冒号后面的内容是冒号前的值。

2.键值对

        填鸭结束,相信读者一脸懵逼。

        字典可以用来存储数据,它的存储格式为——key:value(键:值), 这样键和值通过冒号连接起来的组合,称为“键值对”。

其中:
        key 必须是不可变的,一般使用字符串作为字典中的key,也可以使用数字等不可变类型的值。

        key是唯一的 如果有多个相同的key的情况,保留最后一个key对应的值

        value没有约束条件,可以是任意数据类型。

        字典中存储的数据是没有顺序的。没有顺序,也就意味着没有索引一说。所以如果使用列表和元组的数字索引查找法是不行的。

        运行如下代码:

Myself={'身高': 178, '体重': 160, '性别': '男'}
print(Myself[0])

 

         会得到报错。

再看看上一小节的内容,要打印出第一个键值对的值,要使用print(Myself['身高']).

        也即想要查找某个值(value),需要把与之对应的键(key)当作“索引”,来查找。

3.添加键值对

        字典是一种动态结构,可随时在其中添加键值对。要添加键值对,可使用赋值语句,依次指定字典名、用方括号括起的相关联的值

        dict_name['key'] = value

        如下所示:

Myself = {'身高': 178, '体重': 160, '性别': '男'}
print(Myself)
Myself['计算机成绩'] = 99
Myself['英语成绩'] = 59
print(Myself)

 可以看出,通过赋值语言,给字典中增加了两组键值对。

有些时候,字典需要从零建立,这个时候需要预先建立一个空字典,然后一点点往里面增加。

建立空字典的方法和列表类似,都是直接赋值。

        dict_name = {}

        这样,就学会了如何从0开始,构建一个字典。

4.键值对的修改与删除

        字典是可以修改的。随着现实世界的变化,很多时候需要修改字典中的键值对。修改键值对的思想和增加键值对类似,都是赋值。增加键值对是要赋一个新的值,修改键值对是改变原来的值。

Myself = {'身高': 178, '体重': 160, '性别': '男'}
print('我的体重为'+str(Myself['体重'])+'斤')
Myself['体重'] = 150
print('我现在的体重为'+str(Myself['体重'])+'斤')

        如上代码,先建立一个Myself字典,然后打印出过去的体重,为160斤。但是随着时间发展,体重下降了。这时候将体重修改为150,重新打印现在的体重。

        格式为:dict_name['key'] = new_value

        值得注意的是,因为Myself字典中的key体重对应的value是160,为int整数型。而为了输出美观,使用了print的字符串拼接功能(str+str)。所以需要把体重的值从整数型改为字符型,使用str()语言即可。结果如下。

 

        而对于字典中不要的信息,可以使用del语句将其相应的键值对删除。使用del语句时,必须指定字典名和要删除的键。格式如下:

        del dict_name['key_YouWantToDelete']

        del 字典名['需要删除的键名']

如下所示:

Myself = {'身高': 178, '体重': 160, '性别': '男'}
print(Myself)
del Myself['体重']
print(Myself)

 可以看出,相应的“体重”这个键和它对应的值从字典中被删去了。

5.一个格式规范

        有些时候,需要建立个非常大的字典。可以像上面那样放在一行,但是不够美观,而且显示不全。这时候就要分多行来建立字典。如下所示,先命名一个字典,然后打印出来语文考试的成绩。这里的字典和print()语句都用了多行来写。

Grades = {
    '语文': 70,
    '数学': 90,
    '英语': 60,
    '物理': 80,
    '马哲': 85,
    '计算机': 100
    }
print('在2022年的考试中,本人的语文成绩为' +
      str(Grades['语文']) + '。')

        需要使用多行来定义字典时,在第一行等号之后,输入大括号,然后按回车键换行;再在下一行缩进四个空格,指定第一组键值对,同时在末尾加上逗号;此后再按回车,文本编辑器会自动产生缩进;然后再类似于第一组,编写第二组第三组,直到添加完所有的键值对;最后,再按回车,打上右括号,完成字典的建立。

        print的多行书写与上面类似。

二、如何遍历字典

        字典中存储的元素是键值对,不同于列表那样的单个单元的元素。所以在遍历字典时,会有遍历键值对、遍历键、遍历值这三种不同的方法。        

1.遍历键值对

        还是用之前那个字典来举例子,如下方法,可以遍历键值对。

Grades = {
    '语文': 70,
    '数学': 90,
    '英语': 60,
    '计算机': 100
    }
for subject, grade in Grades.items():
    print('\n科目:', subject)
    print('成绩:', grade)
        如上,要编写用于遍历字典的for 循环,可声明两个变量(本例中为subject和grade),用于存储键 值对中的键和值。这两个变量可以随便命名,也可以称之为i和j。但是为了提高代码的可阅读性和可修改性,还是建议用键和值表示的实际含义的英语单词来命名。

        然后通过item()方法,将字典Grades的某一个键值对取出,分别存放键和值。经过for循环,分别将字典Grades的键和值存入subject和grade这两个变量中。最后依次打印出来。

        

         

2.遍历字典的键

        如果不需要字典中的值,可以使用keys()方法,只提取字典的键,如下所示:

Grades = {
    '语文': 70,
    '数学': 90,
    '英语': 60,
    '计算机': 100
    }
print('本次考试涉及的科目有:')
for subject in Grades.keys():
    print(subject)

        使用keys()方法,可以只提取出键值对中的键,而不管值。然后再根据键得到自己想要的东西。如上,这里为了统计考试的科目,所以只需要键(subject科目),而不需要值(分数)。

另外!如果直接遍历字典,也会返回字典中元素的所有键。

        例如把:for subject in Grades.keys():

        修改为:for subject in Grades:

        结果不变。

但是为了代码的可读性,最好还是注明。

3.遍历字典的值

        如果不需要字典中的键,可以使用values()方法,只提取字典的值,如下所示:

Grades = {
    '语文': 70,
    '数学': 90,
    '英语': 60,
    '计算机': 100
    }
for grade in Grades.values():
    print(grade)
print('本次考试的总成绩为:', sum(Grades.values()))

        使用values()方法,可以只提取出键值对中的值,而不管键。然后再根据键得到自己想要的东西。如上,这里为了计算所有课的总成绩,所以只需要值(分数grade),而不需要键(科目)。


 总结

        本文讲解了字典的基础用法。Python中的字典是一种很特殊的存储容器,它表达了一种互相连接的存储状态。本文学习了如何定义字典,以及如何使用存储在字典中的信息;如何访问和修改字典中的元素,以及如何遍历字典中的所有信息;如何遍历字典中所有的键值对、所有的键和所有的值

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值