细说python字典

字典常识

    • 1.一个简单的字典
    • 2.使用字典
      • 2.1 访问字典中的值
      • 2.2.添加键值对
      • 2.3 创建一个空字典
      • 2.4 修改字典中的值
      • 2.5 删除键-值对
      • 2.6 由类似对象组成的字典
    • 3.遍历字典
      • 3.1遍历所有的键-值对
      • 3.2 遍历字典中的所有键
      • 3.3按顺序遍历字典中的所有键
      • 3.4遍历字典中的所有值
    • 4.嵌套
    • 8.考核

1.一个简单的字典

怎么去理解字典呢?字典可以储存你想要的各种信息,比如姓名、年龄、地址、职业等等,你还能储存任意两种相关的信息,如单词及含义。
来看一个游戏,其中包含一些外星人,这些外星人的色彩和点数各不相同。右边就是一个简单的字典,储存了有关特定外星人的信息:
细说python字典_第1张图片
运行结果:
在这里插入图片描述

2.使用字典

在Python中,字典是一系列键-值对。每个键都与一个值相关,你可以使用来访问与之相关联的。与键相关联的值可以是数字、字符串、列表、乃至字典。
在Python中,字典用放在花括号{}中的一系类键-值对表示,如前面的示例所示:
键-值对是两个相关联的值。指定键时,Python将返回与之相关联的
。键和值之间用冒号:分隔开,而键-值对之间用逗号隔开。
细说python字典_第2张图片

2.1 访问字典中的值

要获取与键相关的值,可依次指定字典名和放在方括号内的,如下:
细说python字典_第3张图片
这将返回与字典alien_0中与键’color’相关联的值:
在这里插入图片描述
字典中可以包含任意数量的键-值对,例如下面包含外星人alien_0的颜色和点数。如果玩家射杀这个外星人,就可以获得多少个点:

右面这个示例首先定义了一个字典alien_0,然后从字典中获取与键’points’相关联的值,并将其存储再变量new_points,接下来将这个整数转换为字符串,并打印一条消息,指出玩家获得了多少个点。
细说python字典_第4张图片
运行结果:
在这里插入图片描述

2.2.添加键值对

字典是一种动态结构,可随时在其中添加键-值对。需要依次指定字典名、用方括号括起的键和相关联的值。
下面示例是在字典alien_0中添加两项信息:外星人的x坐标和y坐标,使用字典名加方括号,内写入新的键的名称,后面指定关联的值,则完成添加键-值对。后续打印发现字典中已经添加了两个新的键-值对。
细说python字典_第5张图片

运行结果:
在这里插入图片描述

2.3 创建一个空字典

使用字典来存储用户提供的数据或在编写能自定生成大量键-值对的代码时,通常都需要先定义一个空字典。
细说python字典_第6张图片
运行结果:
在这里插入图片描述

2.4 修改字典中的值

要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。例如需要将外星人alien_0从绿色改为黄色:
细说python字典_第7张图片
运行结果:
在这里插入图片描述
来看一个更有趣的例子:对一个能够以不同速度移动的外星人的位置进行跟踪。
首先我们定义了一个外星人,包含他们的初识x坐标和y坐标,还有速度’medium’,然后打印了初识x坐标。然后我们使用if-elif-else来判断外星人移动了多远,并将移动的值存储在变量x_increment中,经过检查得到速度为medium时,向右移动2个单位,然后再将增量x_increment加在位置x_position上,再打印现在的位置。
细说python字典_第8张图片
运行结果:
在这里插入图片描述
这个技术很棒:通过修改外星人字典中的值,可改变外星人的行为。例如,要将这个速度中等的外星人变成速度很快的外星人:
细说python字典_第9张图片
运行结果:
在这里插入图片描述

2.5 删除键-值对

对于字典中不再需要的信息,可使用del语句将相应的键-值对彻底删除。使用del语句时,必须指定字典名和要删除的键。
细说python字典_第10张图片
运行结果:
在这里插入图片描述

2.6 由类似对象组成的字典

在前面的示例中,字典存储的是一个对象的多种信息,但有时也需要存储众多对象的同一种信息。例如你想调查很多人喜欢的编程语言是什么:
右图所示,我们将一个较大的字典放在了多行中。其中每个键都是一个被调查者的名字,每个值都是被调查者喜欢的编程语言。使用多行定义字典时,输入左花括号后按回车,在下一行缩进四个空格后指定第一个键-值对,并用一个逗号结束,所有键-值对输入完成后,在下一行缩进四个空格后输入右花括号。
细说python字典_第11张图片
利用这种方式,我们给定被调查者的名字,可使用这个字典轻松的获悉他喜欢的语言:
细说python字典_第12张图片
运行结果:
在这里插入图片描述

3.遍历字典

一个Python字典可以只包含几个键-值对,也可能包含数百万个键-值对,Python支持对字典遍历,支持遍历字典的所有键-值对、键或值。

3.1遍历所有的键-值对

现有一个字典,存放有学生小华的考试信息,包括学校,学号和成绩,如果你想获得小华字典中的所有信息,可以使用一个for循环来遍历字典:
可以看到,用for循环时还需要声明两个变量,用来存储键-值对所对应的数据,方法**items()**的作用就是返回一个键-值对列表。由于字典中有整数,所以我们使用str改变下数据类型。

细说python字典_第13张图片

运行结果:
细说python字典_第14张图片

3.2 遍历字典中的所有键

在上述这种循环中,可使用当前键来访问与之相关联的值。比如下面示例打印所有被调查者的名字,但如果被调查者是你朋友,指出他最喜欢的语言。
字典之下,我们首先建了一个朋友列表,存储朋友的名字,然后遍历字典,打印每个人的名字,当打印的名字也在朋友这个列表中时,我们就再打印一句特殊的问候语,包含这位朋友喜欢的编程语言。这句问候语中包括朋友的名字name和喜欢的语言favorit_languages[name]
细说python字典_第15张图片
运行结果:
细说python字典_第16张图片
以使用keys()确定某人是否接受了调查:
方法keys()并非只能用于遍历;实际上,它返回的是一个列表,其中包含字典中的所有键。
细说python字典_第17张图片
运行结果:
在这里插入图片描述

3.3按顺序遍历字典中的所有键

在获取字典的元素时,如果你想按照一定顺序显示,一种办法是在for循环中队返回的键进行排序,可使用函数sorted()
细说python字典_第18张图片
运行结果:
在这里插入图片描述

3.4遍历字典中的所有值

如果你需要的主要是字典中的值,可使用方法values(),它返回一个值的列表,而不包含任何键。
细说python字典_第19张图片
运行结果:
细说python字典_第20张图片
上述方法虽然能提取所有的值,但是没有考虑是否重复,假设有大量的重复项,这对我们收集数据是不利的,所以可以使用集合(set)解决
通过对包含重复元素的列表调用
set()
,可让Python找出列表中独一无二的元素,并使用这些元素来创建一个集合。结果是一个不重复列表。
细说python字典_第21张图片
运行结果:
在这里插入图片描述

4.嵌套

8.考核

细说python字典_第22张图片

细说python字典_第23张图片

你可能感兴趣的:(Python,python)