2025年python 字典

python 字典1 字典可以存储的信息量几乎不受限制 因此我会演示如何遍历字典中的数据 另外 你还将学习存储字典的列表 存储字典的列表 存储列表的字典和存储字典的字典 创建字典后 你可以存储多少信息就存储多少信息 年龄 姓名 地址 职业以及要描述的任何方面 你还能够存储任意两种相关的信息 一系列单词及含义 一系列人名及其喜欢的数字 1 1 一个简单的字典 我们创建一个人的字典 保存这个人的年龄和爱好

大家好,我是讯享网,很高兴认识大家。

1.字典可以存储的信息量几乎不受限制,因此我会演示如何遍历字典中的数据,另外,你还将学习存储字典的列表、存储字典的列表、存储列表的字典和存储字典的字典,创建字典后,你可以存储多少信息就存储多少信息:年龄、姓名、地址、职业以及要描述的任何方面,你还能够存储任意两种相关的信息,一系列单词及含义,一系列人名及其喜欢的数字.

1.1一个简单的字典
我们创建一个人的字典,保存这个人的年龄和爱好,然后在打印出来访问这些信息.
在这里插入图片描述
讯享网
熟悉使用字典后,就能够描述模拟世界中的情形.

1.2 使用字典
字典是一系列键值对,每个键都与一个值相关联,你可以使用键来访问与之相关联的值,与键相关联的值可以是数字、字符串、列表乃至字典.事实上,可将任何python对象作用字典中的值.

在python中,字典用放在花括号{}中的一系列键值对表示,如前面示列所示.
在这里插入图片描述

1.3访问字典中的值
要获取与键相关联的值,可以依次指定字典名和放在方括号内的键,如下所示:
这将返回字典person中与键’age’相关的值:
在这里插入图片描述
字典中包含任意数量的键—值对,列如,下面是最初的字典person,其中包含两个键–值对:
在这里插入图片描述
1.4 添加键—值对
字典是一种动态结构,可以随时在其中添加键—值对,要添加键—值对,可以依次指定字典名、用方括号起的键和相关联的值.

下面我们在字典中添加两项信息,添加年龄和姓名.
注意:键–值对的排列顺序与添加顺序不同,python不关心键—值对的添加顺序,而只关心键和值之间的关联关系.
在这里插入图片描述
1.5 先创建一个空字典
有时候,在空字典添加键–值对是为了方便,而有时候必须这样做,为此,可以先使用一对空的花括号定义一个字典,在分行添加各个键—值对,列如,下列演示了如何以这种方式创建字典person.

使用字典来存储用户提供的数据或在编写能自动大量键—值对的代码时,通常需要先定义一个空字典.
在这里插入图片描述

1.6 修改字典中的值
要修改字典中的值,可以依次指定字典名、用方括号起的键以及与该键相关联的新值,现在,我更改这个人的年龄.

我们首先定义一个表示人person的字典,其中只包含这个人的年龄,接下来,我们将键 ‘age’相关联的值改为’17’,输出表明,这个人确实改变了年龄.
在这里插入图片描述
1.7删除键—值对
对于字典中不需要的信息,可以使用del语句将相应的键–值彻底删除,使用del语句时,必须指定字典名和要删除的键.

列如,下面的代码从字典person中删除键’age’及其值;
方法del name[key]
删除的键–值就永远消失了
在这里插入图片描述
1.8 由类似对象组成的字典
在前面示列中,字典存储的是一个对象,但你也可以用字典来存储众多对象的同一种信息,列如,你要调查很多人,询问他们最喜欢的编程语言.可以使用一个字典来存储这种简单的调查结果,如下所示:

可以看到,我们将一个较大的字典放在了多行中,其中每个键都是一个名字,而值都是被调查者喜欢的语言,确定需要使用多行来定义字典时,在输入左花括号后按回车键,再在下一行缩进四个空格,指定第一个键–值对,并在它后面加上一个逗号.
在这里插入图片描述
给定被调查者的名字,可以使这个字典轻松获悉他喜欢的语言:
在这里插入图片描述

2.遍历字典
一个python字典可能只包含几个键—值对,也可能包含数百万个键—值对,鉴于字典可能包含大量数据,python支持对字典遍历,字典可用于一下各种方式存储信息,因此有多种遍历字典的方式:课遍历字典的所有键—值对、键或值.

2.1 遍历所有键—值对
探索各种遍历方法前,先来看一个新字典,它用于存储有关网站的信息,下面的字典存储一名用户的用户名、名和姓:
在这里插入图片描述
我们使用for循环来遍历这个字典,要编写用于遍历字典for循环,可声明两个变量,用于存储键—值对中的键和值,对于这两个变量,可使用任何名称,下面代码使用了简单的变量名,这完全可行.

for语句的第二部分包含字典和方法items(),它返回一个键–值对列表,接下来for循环依次将每个键–值对存储到指定的两个变量中,在前面的示列中,我们使用这两个变量答应每个键及其相关的值m第一条print语句中"\n"确保在输出–值对前面都插入一个空行.
在这里插入图片描述

注意:即便遍历字典时,键–值对的返回顺序也与存储的顺序不同,python也不关心键—值对的存储顺序,而只是跟踪键和值之间的关联关系.

在上面的favorite__languages中,字典存储的是不同人的同一种信息,对于类似这样的字典,遍历所有的键—值对很合适,如果遍历字典favorite_languages,将得到其中每个人的姓名和喜欢的编程语言,由于其中的键都是人名,而值都是语言,因此我们在循环中使用变量name 和language,而不是key和valuem这让人更容易明白循环的作用:
在这里插入图片描述

上面的代码让python遍历字典中的每一个键—值对,并将键存储在变量name中,而将值存储在变量language中,这些描述名称能够让人非常轻松明白print做的作用是做什么的…

2.2 遍历字典中的所有键
在不要使用字典的值时,方法keys()很有用,下面来遍历favorite__languages,并将每个被调查者的名字都打印出来:

将字典中favorite__languages中所有键,并以此将他们存储到变量name中,输出列出每个被调查者的名字.
在这里插入图片描述

遍历字典是,会默认遍历所有的键,因此,如果将上述代码 for name in favorite_lanuages.key():替换为 for name in favorite_lanuages:输出将不变.

如果显示地使用方法keys()可让代码更容易理解,你可以选择这样做,如果你愿意,也可以省略它.

在循环中,我们使用当前键来访问与之相关联的值,打印两条消息,指出两位朋友喜欢的语言,我们像前面一样遍历字典中的名字,但在名字为朋友名字时,打印一条消息,指出喜欢的语言:

我们创建一个列表,其中包含我们要打印的信息,指出我们喜欢的语言朋友,在循环中,我们打印每个人的名字,并检查当前的名字是否存在列表friends中,如果在列表中,就打印一句特殊的问候语,包含朋友喜欢的语言,我们使用字典名,并将变量name的当前值作为键.
在这里插入图片描述

我们还可以使用keys()来确定某个人是否接受了调查,下面代码确定zhongba是否接受了调查.
方法keys()并非只能用于遍历,实际上,它返回一个列表,其中包含字典中的所有键,因此代码只是核实了’zhongba’是否在这个列表中,由于他并不包含在这个列表中,因此打印一条消息,邀请他参加调查.
在这里插入图片描述

3, 按顺序遍历字典中的所有键
字典总是明确地记录键和值之间的关系,但获取字典的元素时,获取顺序是不可预测的,这不是问题,因为通常你想要的只是获取与键相关联的正确的值.

要以特定的顺序返回元素,一种办法是在for循环中对返回的键进行排序,为此,可使用sorted()来获取按特定顺序排序的键列表的副本.

这条for语句类似于其他for语句,但对方法dictionary.keys()的结果调用了函数sorted(),这python列出字典中所有键,并在遍历前对这个列表进行排序,输出表明,按顺序显示了所有被调查者的名字.
在这里插入图片描述

3.1遍历字典中的所有值
如果你想了解字典中包含的值,可以使用方法values(),他返回一个值列表,而不包含任何键,列如,我们想获得一个这样的列表,即其中只包含被调查者选着的各种语言,而不包含被调查者的名字,可以选择这样做:

这条for语句提取字典中每个值,并将他们一次存储到变量language中,通过打印这些值,我们获得一个列表,其中包含被调查者选着的各种语言.
在这里插入图片描述
这种做法提取字典中所有的值,而没有考虑是否重复,涉及的值很少,也许这不是问题,如果被调查者很多,最终的列表可能包含大量的重复项,为剔除这些重复项,可以使用集合(set).集合类似于列表,但每个元素都必须是独一无二的:

通过对包含重复元素的列表调用set(),可让python找出列表中独一无二的元素,并使用这些元素来创建一个集合,我们使用了set()来提取favorite_languages.values()中不同的语言.

结果是不重复的列表,其中列出被调查者提交所有的语言.
在这里插入图片描述
4.嵌套
有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套,你可以在列表中嵌套字典,在字典中嵌套列表甚至在字典中嵌套字典,正如下面所示列将演示的,嵌套是一项强大的功能.

4.1.字典列表
现在我们准备存储一个外星人的各种信息,但无法存储第二个外星人的信息,更别说屏幕上全部外星人的信息了,如何管理所有外星人呢?一种办法是创建一个外星人列表,其中每个外星人都是一个字典,包含有关外星人的各种信息,列如,我们来创建一个包含三个外星人的列表:

我们首先创建三个字典,其中每个字典都表示一个外星人,我们将这些字典都放到一个名为aliens的列表中,最后,我们遍历这个列表,并将每个外星人打印出来:
在这里插入图片描述
更加符合现实的情形是,外星人不止三个,且每个外星人都是使用代码自动生成的,在下面示列中,我们使用range()生成了30个外星人:
在这里插入图片描述
4.2 在字典中存储列表
有时候,需要将列表存储在字典中而不是将字典存储在列表中.列如,你如何描述顾客点的披萨呢?如果是用列表,只能存储要添加的披萨配料;如果使用字典,就不仅可在其中包含配料列表,还可包含其他有关披萨的描述.

在下面的示列中,就存储了披萨的两方面信息,外皮类型和配料列表,其中的配料列表是一个与键"toppings"相关联的值,要访问该列表,我们使用字典名和键"toppings",就像访问字典中的其他值一样,这将返回一个配料列表,而不是单个值:

我们首先创建了一个字典,其中存储了有关顾客所点的披萨信息,在这个字典中,一个键是’crust’,与之相关联的值是字符串’thick’,下一个键是’‘toppings’,与之相关联的值是一个列表,其中存储了顾客要求添加的所有配料,制作我们概述了顾客所点的披萨,为打印配料,我们编写一个for循环,为访问配料,我们使用键’topping’,这样python将从字典中提取配料列表.
在这里插入图片描述
每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表,前面有喜欢编程语言示列中,如果将每个人的回答都存储在一个列表中,被调查者就可选择多种喜欢的语言,在这种情况下,当我们遍历字典时,与每个被调查者相关联的都是一个语言列表,而不是一种语言,因此,在遍历该字典的for循环中我们需要在使用一个for循环来遍历与被调查者相关联的语言列表:

正如你看到的,现在与每个名字相关联的值都是一个列表,请注意,有些人喜欢的语言只有一种,而有些人喜欢多种,遍历字典时,我们使用了变量languages来依次存储字典中的每个值,因为我们知道这些值都是列表,在遍历字典的主循环中,我们又使用一个for循环来遍历每个人喜欢的语言列表,现在,没个人想列出多少种喜欢的语言都可以.
在这里插入图片描述

4.3 在字典中存储字典
可以在字典中嵌套字典,但这样做,代码可能会复杂起来,列如,如果有多个网站用户,每个都有独特的用户名,可在字典中将用户名作为键,然后将每位用户的信息存储在一个字典中,并将该字典作为与用户名相关联的值,在下面程序中,对于每位用户,我们都存储三项信息:名、姓和居住地;为访问这些信息,我们遍历所有用户名,访问每个用户相关联的信息字典.

我们首先定义了一个名为users的字典,其中包含两个键:用户名’aeinstein’和’mouse’,与每个键相关联的值都是一个字典,其中包含用户的名、姓、和居住地.我们遍历字典users,让python将每个键存储在变量username中,并依次将当前键相关的字典存储在变量user_info中,在循环内部我们将用户名打印出来.

然后我们开始访问内部的信息,变量user_info包含用户信息字典,而该字典:‘first’、‘last’和’location’;对于每一位用户我们都使用这些键来生成整洁额姓名和居住地,然后答应有关用户的简要信息.
在这里插入图片描述

小讯
上一篇 2025-01-08 08:06
下一篇 2025-03-23 15:48

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/74239.html