《Python编程:从入门到实践》笔记 第六章 字典

条件测试

每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。
python中检查是否相等时 区分大小写。
!=判断两个值是否不等。
检查多个条件用and连接 检查是否两个条件都位True。如果每个测试都通过了,整个表达式就为True
检查多个条件用or连接 至少有一个条件满足,就能通过整个测试。
检查特定值是否包含在列表中,用in


image.png

检查特定值是否不包含在列表中:not in
最简单的if语句:
if conditional_test:
do something

字典

字典是一系列键值对,每个键都与一个值相关联,可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表和字典。可将任何python对象用作字典中的值。
字典放在花括号{ } 中的一系列键值对表示。如:
alien_0={'color':'green','points':5}
键—值 对是两个相关联的值。指定键时,python将返回与之相关联的值。键和值之间用冒号分隔,而键—值对之间用逗号分隔,在字典中,存储多少个键值对都可以。
最简单的字典只有一个键—值对,如下:
alien_0={"color":'green'}

添加键值对

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


image.png
修改字典中的值

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


image.png
删除键——值对

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

由类似对象组成的字典

可以使用字典来存储众多对象的同一种信息。
例如,假设你要调查很多人,询问他们最喜欢的编程语言,可使用一个字典来存储这种简单调查的结果。

遍历字典

遍历所有的键值对:
例如下图,可以利用一个for循环来遍历这个字典,获悉这个用户字典中的所有信息:


image.png

for语句的第一部分是声明两个变量,用于存储键值对中的键和值,对于这两个变量,可使用任何名称,for语句的第二部分包含字典名和方法items() 它返回一个键值对列表。

遍历字典时,键值对的返回顺序会与存储顺序不同,Python不关心键值对的存储顺序,而只跟踪键和值的关联关系
keys()方法

遍历字典中的所有键


image.png

遍历字典时,python是默认遍历所有键的,所以即使不加keys()方法,输出的也是这个


image.png

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

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

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


image.png
遍历字典中的所有值

可以使用方法values(),它返回一个值列表,而不包含任何键。

image.png

这种做法提取字典中所有的值,而没有考虑是否重复,如果想删除重复项,可使用集合(set)
集合(set) 类似于列表,但每个元素都必须是独一无二的:

image.png

嵌套

将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套
可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。

字典列表

如下:


image.png
在字典中存储列表

有时候需要将列表存储在字典中,而不是将字典存储在列表中。
例如:如何描述顾客点的比萨呢?如果使用列表,只能存储要添加的比萨配料,如果使用字典,就不仅可在其中包含配料列表,还可包含其他有关比萨的描述。
比如下面的实例中存储了比萨的两方面信息:外皮类型和配料列表。其中的配料列表是一个与键“toppings”相关联的值,要访问该列表,我们使用字典名和键‘toppings’。这将返回的是一个列表,而不是单个的值:


image.png
在字典中存储字典

例如:有多个网站用户,每个都有独特的用户名,可在字典中将用户名作为键,然后将每位用户的信息存储在一个字典中,并将该字典作为与用户名相关联的值。在下面的程序中,对于每位用户,我们都存储了其三项信息,名、姓和居住地;为访问这些信息,我们遍历所有的用户名,并访问与每个用户名相关联的信息字典:


image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容