python学习初体验(四):字典相关学习

python学习初体验——字典

字典,简单的说,是一系列的键-值对,类似于C语言中的结构体的概念。每个键都有一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值的类型可以是多种:字符串,数字,列表,甚至字典本身。

一、字典基础

1.字典的定义:

  字典名 = {'键名1' :值,'键名2' : 值,...........}

  如下图所示,是一个简单的字典定义:

 

 指定键时,python将返回与之相关联的值,键和值之间用冒号分割,而键-值对之间用逗号分割。在一个字典中,你想储存多少键值对都可以。

2.访问字典中值

 字典名['键名'] 将返回与之相对应的值。

3.添加键-值对

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

此时打印出来的alien_0就发生了变化:

在这里需要注意一点的是:键-值对的排列顺序与添加顺序不同。python不关心键-值对的添加顺序,而只关心键和值之间的关联关系。

可以先创建一个空的字典,有时候在空字典中添加键-值对是为了方便,而有时候必须这样做。使用字典来存储用户提供的数据或在编写能自动生成大量键-值对的代码时,通常都需要先定义一个空字典。再分行添加各个键-值对。

4.修改字典中的值

 可依次指定字典名、用方括号括起来的键以及与该键相关联的新值。

5.删除键-值对

  可使用del语句将相应的键-值对彻底删除,使用del语句时,必须指定字典名和要删除的键。

这里需要注意的是:删除的键-值对就永远的消失了。

6.由类似对象组成的字典

 可使用字典来储存众多对象的同一种信息,例如:

这里需要注意的就是缩进的问题,尤其花括号的缩进问题。

二、遍历字典

1.遍历所有的键-值对

 这里用到字典的方法item(),其返回值是字典的每一个键-值对,即一个键-值对的 列表:

对于最终的结果,需要注意的是:即便遍历字典时,键-值对的返回顺序也与存储顺序不同。python不关心键-值对的存储顺序,而只跟踪键和值之间的关联关系。

2.遍历字典中所有的键:

在不需要使用字典中的值时,方法key()很有用,它只返回字典中的键名称:

遍历字典时,会默认遍历所有的键。方法key()并非只能用于遍历;实际上,它返回一个列表,其中包含字典中的所有的键。

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

  字典总是明确地记录键和值之间的关联关系,但获取字典的元素时,获取顺序是不可预测的。这不是问题,因为我们通常关心的只是获取与键相关联的正确的值。但是要以特定的顺序返回元素,一种办法就是在for循环中对返回的键进行排序,为此,我们可以使用函数sorted()来获得按特定顺序排列的键列表的副本。

其最终的顺序是按首字母在字母表中前后排列出来的。

4.遍历字典中所有的值

方法value(),返回一个值列表,而不包含任何键。:

结果如下:

可以看到,这样的做法会导致最终的结果冗余,含有重复项,为此,我们可以使用集合set消除冗余项,集合类似于列表,只是每个元素是独一无二的,由数学中集合的互异性我们也可以很好的理解。

三、嵌套

有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这就称为嵌套。

1.字典列表,将字典嵌套在列表中,即列表中的每一项都为一个字典:

当然,我们也可以使用空列表进行字典的不断填充,运用if语句或者for循环语句可以很简单的定义很多字典列表。

2.在字典中存储列表;即字典有些键的值为一个列表。

每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。下面是一个例子,对其进行遍历:

3.在字典中存储字典

我们可以在字典中嵌套字典,但这样做时,代码可能很快复杂起来。

下面是对该字典的遍历:

在这里需要注意的是,表示上例中美味用户的字典的结构都最好相同,虽然python没有这样的要求,但这样会使得字典处理起来更容易,本着简约清晰的目标,所以最好都一样,否则之后的遍历代码就会变得很麻烦。

 

字典学习就先到这里。继续努力!!!!!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值