python的字典

1.一个简单的字典

alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])
print(alien_0['points'])
字典alien_0存储了外星人的颜色和点数。使用两条print语句来访问并打印这些信息,如
下所示:
green
5

2.使用字典

(1)在Python中,字典是一系列键—值对。每个键都与一个值相关联,你可以使用键来访问与之
相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对
象用作字典中的值。
在Python中,字典用放在花括号{}中的一系列键—值对表示

(2)键—值对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值之间用冒号
分隔,而键—值对之间用逗号分隔

(3)访问字典中的值:

要获取与键相关联的值,可依次指定字典名和放在方括号内的键.

(4)添加键—值对:

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

(5)创建一个空字典

使用字典来存储用户提供的数据或在编写能自动生成大量键—值对的代码时,通常都需要先
定义一个空字典。例子: 变量名 = { } 即一个空字典就创建成功了。

(6)修改字典中的值

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

(7)删除建-值对

对于字典中不再需要的信息,可使用del语句将相应的键—值对彻底删除。使用del语句时,
必须指定字典名和要删除的键。

例子

alien_0 = {'color': 'green', 'points': 5}
print(alien_0)
del alien_0['points']
print(alien_0)

运行结果

{'color': 'green', 'points': 5}
{'color': 'green'}

(8)由类似对象组成的字典

favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
正如你看到的,我们将一个较大的字典放在了多行中。其中每个键都是一个被调查者的名字,
而每个值都是被调查者喜欢的语言。确定需要使用多行来定义字典时,在输入左花括号后按回车
键,再在下一行缩进四个空格,指定第一个键—值对,并在它后面加上一个逗号。此后你再次按
回车键时,文本编辑器将自动缩进后续键—值对,且缩进量与第一个键—值对相同。
定义好字典后,在最后一个键—值对的下一行添加一个右花括号,并缩进四个空格,使其与
字典中的键对齐。另外一种不错的做法是在最后一个键—值对后面也加上逗号,为以后在下一行
添加键—值对做好准备。

3.遍历字典

(1)遍历所有的键—值对

遍历字典的for循环,可声明两个变量,用于存储键—值对中的键和值。
对于这两个变量,可使用任何名称 ,for语句的第二部分包含字典名和方法items()。

形如  for k, v in user_0.items()

(2)遍历字典中的所有键

在不需要使用字典中的值时,方法keys()很有用。

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

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

(4)遍历字典中的所有值

如果你感兴趣的主要是字典包含的值,可使用方法values(),它返回一个值列表,而不包含
任何键。

例子:for language in favorite_languages.values():

这种做法提取字典中所有的值,而没有考虑是否重复。涉及的值很少时,这也许不是问题,
但如果被调查者很多,最终的列表可能包含大量的重复项。为剔除重复项,可使用集合(set)。
集合类似于列表,但每个元素都必须是独一无二

例子:for language in set(favorite_languages.values()):

4.嵌套

(1)字典列表

经常需要在列表中包含大量的字典,而其中每个字典都包含特定对象的众多信息

(2)在字典中存储列表

需要将列表存储在字典中,而不是将字典存储在列表中,列表和字典的嵌套层级不应太多。

(3)在字典中存储字典

注意,表示每位用户的字典的结构都相同,虽然Python并没有这样的要求,但这使得嵌
套的字典处理起来更容易。倘若表示每位用户的字典都包含不同的键,for循环内部的代码将
更复杂。

 

posted @ 2018-08-31 19:31  原来你在这  阅读(358)  评论(0编辑  收藏  举报