|Python新手小白低级教程|第十二章:数据结构(三):字典

文章目录

  • 前言
  • 一、字典基础
    • 1.示例
    • 2.字典的基础结构
    • 3.结构注意事项
      • (1)print函数“字典名称[中对应值]”的对应值结构中的引号
      • (2)赋值构成字典时中间的逗号
  • 二、在语句中插入字典里的内容
    • 1.示例
    • 2.注意点
      • 1.f不要漏
      • 2.引号的位置
      • 3.代入时大括号里的东西千万不要变成字典名
  • 三、字典操作
    • 1.新的赋值方式
    • 2.删除字典元素
    • 3.字典与if结合
      • (1)in关键字
      • (2)验证性if实操
  • 简单字典项目(习题)
  • 总结
  • 答案

前言

上两节课我们学习的内容还是蛮复杂滴,所以……大家学得懂吗?有困难记得私信哦!
这节课,我们要学习一个更为实用性的东西——字典。字典是“dictionary”那个吗?接下来,我们就来揭晓这个谜。

一、字典基础

1.示例

dict_0 = {'we':'我们','you':'你们'}
print(dict_0['we'])
print(dict_0['you'])

这就是字典。从它的特征里可以看出:字典的结构和我们之前讲的变量和列表差不多。
我们先来看一下字典的基础结构:

2.字典的基础结构

dict_name = {'name_1':'things','name_2':'things'}

这个结构的特征主要体现在后面。中括号中包着如此结构名称:对应内容 名称:对应内容
在下面的print函数中,索取方式很像索引字典名称[中对应值]
下面我们直接上结构:

dict_name = {'name_1':'things','name_2':'things'}
print(dict_name['name_1'])
print(dict_name['name_2']

这个结构就是“字典的基础结构”。
但是,看似简单的一个结构,其实坑也不少。

3.结构注意事项

(1)print函数“字典名称[中对应值]”的对应值结构中的引号

接下来,注意点转移到这行代码:

print(dict_name['name_1'])

我们可以清楚地看到:dict_name后面中括号里有**引号‘’**串联整个索取,这就是最大的易错点。大家可千万别把这个name_1当成变量看!

(2)赋值构成字典时中间的逗号

接下来看到这一行:dict_name = {'name_1':'things','name_2':'things'}
注意啦!‘name_1’:'things’后面可是有逗号隔开的!千万别漏了,否则报错了可会让你一头雾水。

二、在语句中插入字典里的内容

1.示例

还是上面两个单词,大家来看看它们怎么插入字符串

dict_1 = {'you':'你们','we':'我们'}
word_0 = dict_1['you']
print(f"'You' means {word_0}")

还是这几个单词。虽然没有几行代码,但是注意点和意义还是蛮复杂的。
首先,第一行的代码不难,但是第二行有点让人摸不着头脑:为啥好好的字典索引变成变量赋值了呢?很简单,原理和之前的缩影一样,只不过形式变了。
第三行就更恶心了:前面那个“f”是什么东西?中间怎么word_0又多了个大括号?“f”指代的是“format()”函数,用于格式化优化,大家不用管,只要会用就行了。后面的word_0加了个大括号,是因为字典赋值的缘故。这里的注意点我也一一为大家列出来:

2.注意点

1.f不要漏

f一旦漏了,那么就变成了这样:
|Python新手小白低级教程|第十二章:数据结构(三):字典_第1张图片
虽然没有报错,但是不是我们想要的结果,而是一个普通的字符串。所以,f至关重要,大家一定不要漏。
也可以写成这样:
|Python新手小白低级教程|第十二章:数据结构(三):字典_第2张图片

2.引号的位置

注意了!!!引号一定要包注{word_0},否则有素质的Python编译器会免费送给你报错提示

3.代入时大括号里的东西千万不要变成字典名

这个很重要,就连我也经常因为这个失败。所以,大家只要记住:字典名在后面的代入中不适用就行了(索引情况除外)

三、字典操作

1.新的赋值方式

字典赋值除了可以像索引和列表一样上来就赋值,还能这样搞:

#方式1
dict_2 = {'we':'我们','you':'你们'}
print(dict_2)

#方式2
dict_2 = { }
dict_2['we'] = '我们'
dict_2['you'] = '你们'
print(dict_2)

在方式2可以看到,我们先是新建了一个新的空字典,然后用索引将其添加元素,是不是很神奇?这样的话犯错率会大大降低,但是不如第一种简洁,所以大家自己那个用地顺那个好

2.删除字典元素

这个操作非常有意思,这是我们必须用到一个新的关键字:del关键字。
话不多说,直接看例子

dict_2 = {'we':'我们','you':'你们'}
del dict_2['we']
print(dict_2)

运行一下,我们会发现‘we’所对应的索引消失了,这是因为我们第二行中有一个del
del,全拼delete,中文意思是“删除”,大家在自己的电脑键盘上应该也能看到。结构我就不说了,就是del 对应索引

3.字典与if结合

这个是比较灵活的,我们要学习两类。
在学习这之前,我们还要学习个新的关键字:in

(1)in关键字

in关键字非常简单,主要就是判断,和if用的比较多。在下面我们还会再后面学for循环中,有一个结构叫做for i in range( , ),这中间的in就是它了。

我们先来做几个in判断。
打开IDLE,跟我来!
|Python新手小白低级教程|第十二章:数据结构(三):字典_第3张图片
前两行非常简单,就是简简单单的“找数字”,在就true,不在就false
但是后两行就有点恶心了:明明都有dict,为啥第一个是对的,第二个是错的呢?
因为in只能找一模一样的东西,顺序得一样,就算是提取一段字符。所以,到时后找in,前提条件是想找的和提取的字符、顺序都一样。

(2)验证性if实操

接下来就是实操时间
还是例子:

dict_2 = {'we': '我们','you':'你们'}
if 'we' in dict_2:
    print("我们")
if 'us' in dict_2:
    print("我们")
else:
    print("No")

if的条件中多了in的语句,作用是判断in前面的对应索引在不在dict_2里,如果在,就执行if里的,不行就else里的,这个非常好用,得好好掌握。

简单字典项目(习题)

为了综合以上知识,我们来做一个简单的字典项目

项目:小明的老师让他们制作一本“元字典”,字典里包含了大量词语,字典包含了以下内容:
ability 能力
accept 接受
achieve 获得
advantage 优点
active 活跃的
account 账户
appear 出现

帮他制作元字典,并完成以下任务
(1)打印字典全文
(2)提取字典中的“account”这个单词以及意思
(3)使用字典中的单词“advantage”,说出它的意思并将其与an合并成一个词组
(4)用if判断字典的“appear”项是不是“活跃的”。是输出yes,不是输出no,并纠正
(5)判断单词“active”在不在字典里。
(6)按照小明的需求,删除字典中的前三个单词+意思

总结

啊,白费周折的字典内容总算大功告成!我们这次学习的知识虽然很实用,但是还是有一点点瑕疵——for循环遍历列表没有讲,因为for循环没有学习。下节课,我们会学习列表的高级操作,还会学习元组(可能),敬请期待吧!
最后,制作不易,一圈三连,点个关注哦!

答案

english_dict = {
    'ability':'能力',
    'accept':'接受',
    'achieve':'获得',
    'advantage':'优点',
    'active':'活跃的',
    'account':'账户',
    'appear':'出现'
}
#1
print(english_dict)
#2
print(english_dict['account'])
#3
print(english_dict['advantage'] + 'an' + 'advantage')
#4
if 'appear' == '活跃的':
    print("yes")
else:
    print('no')
    print(english_dict['appear'])
#5
if 'active' in english_dict:
    print('yes')
else:
    print('no')
#6
del english_dict['ability']
del english_dict['accept']
del english_dict['achieve']
print(english_dict)

你可能感兴趣的:(python,数据结构,开发语言)