【python基础知识】4.列表和字典

news2024/10/6 8:40:43

文章目录

  • 前言
  • 列表
    • 什么是列表
    • 从列表提取单个元素
    • 从列表提取多个元素
    • 给列表增加/删除元素
  • 数据类型:字典
    • 什么是字典
    • 从字典中提取元素
    • 给字典增加/删除元素
  • 列表和字典的异同
    • 列表和字典的不同点
    • 列表和字典的相同点

前言

截至目前,我们已经掌握了3种数据类型:整数、浮点数、字符串。这一关我们就要学习两种新的数据类型:列表、字典。

不过在这之前,我想先和你聊一聊“计算机”与“数据”之间水乳交融的关系。

计算机名字里就有【计算】两字,如果计算机离开了数据,就如巧妇难为无米之炊。所以说,数据对于计算机很重要。

总的来说,计算机有3种方式利用数据:

在这里插入图片描述

第一种:直接使用数据,比如print()语句,可以直接把我们提供的数据打印出来,通常所见即所得。

# 直接运行即可
# print()会直接把我们提供的数据打印出来

print(3)
print('欢迎来到第4关')

运行结果:

3
欢迎来到第4

第二种:计算和加工数据,让我们看个例子:

# 直接运行即可
# 计算机会先计算/加工 数据,再用print()语句打印

print(3+2*3)
print('欢迎来到'+'第4关')

运行结果:

9
欢迎来到第4

这两个print语句,计算机都是先【计算和加工数据】,再把print()括号里的数据打印到屏幕里。

我们再看看第三种:用数据做判断是怎么一回事。

# 直接运行即可
# 计算机会使用数据来做判断

a = int(input('请输入你的年龄:'))
#如果输入不了数字,请切换成英文输入法

if a<0:
    print('你还在娘胎里呢。')
elif a == 0:
    print('欢迎来到这个世界。')
elif a < 18:
    print('小小的年纪还不懂什么是爱')
else:
    print('你已经是个成熟的大人了,要学会照顾自己。')

运行结果:

请输入你的年龄:28
你已经是个成熟的大人了,要学会照顾自己。

可以看出,计算机在这里是【利用数据用做逻辑判断】:

在这里插入图片描述
那现在我们对【计算机】和【数据】的关系有了一定的了解吧,也正因为数据的重要性,所以对于编程新手来说,掌握主要的数据类型是重中之重。

这一关,我们就会接触两种新的数据类型——列表和字典,你会发现,它们比我们学过的“整数、浮点数、字符串”更加高级,更有“包容性”。

为什么这么说呢?前面学的几种类型,每次赋值只能保存一条数据。如果我们需要使用很多数据的时候,就会很不方便。

而列表和字典的作用,就是可以帮我们存储大量数据,让计算机去读取和操作。

列表

首先我们来看看列表。为了感受列表的作用,我们来玩玩角色扮演的游戏:从现在起,你就是一个新班级的班主任了!

第一天,班上来了50个新鲜的面孔。你让学生把名字写在花名册上,方便上课时一个个点名。

如果只能用已学的知识来解决这个问题,我们需要将每个学生的名字都赋值到一个变量名,然后再分别打印。代码是这样的:

#快速扫一眼,直接点击运行

student1 = '党志文' 
student2 = '浦欣然'
student3 = '罗鸿朗'
student4 = '姜信然'
student5 = '居俊德'
student6 = '宿鸿福'
student7 = '张成和'
student8 = '林景辉'
student9 = '戴英华'
student10 = '马鸿宝'
student11 = '郑翰音'
student12 = '厉和煦'
student13 = '钟英纵'
student14 = '卢信然'
student15 = '任正真'
student16 = '翟彭勃'
student17 = '蒋华清'
student18 = '双英朗'
student19 = '金文柏'
student20 = '饶永思'
student21 = '堵宏盛'
student22 = '濮嘉澍'
student23 = '戈睿慈'
student24 = '邰子默'
student25 = '于斯年'
student26 = '扈元驹'
student27 = '厍良工'
student28 = '甘锐泽'
student29 = '姚兴怀'
student30 = '殳英杰'
student31 = '吴鸿福'
student32 = '王永年'
student33 = '宫锐泽'
student34 = '黎兴发'
student35 = '朱乐贤'
student36 = '关乐童'
student37 = '养永寿'
student38 = '养承嗣'
student39 = '贾康成'
student40 = '韩修齐'
student41 = '彭凯凯'
student42 = '白天干'
student43 = '瞿学义'
student44 = '那同济'
student45 = '衡星文'
student46 = '公兴怀'
student47 = '宫嘉熙'
student48 = '牧乐邦'
student49 = '温彭祖'
student50 = '桂永怡'
print(student1+'在不在?')
print(student2+'在不在?')
print(student3+'在不在?')
print(student4+'在不在?')
print(student5+'在不在?')
print(student6+'在不在?')
print(student7+'在不在?')
print(student8+'在不在?')
print(student9+'在不在?')
print(student10+'在不在?')
print(student11+'在不在?')
print(student12+'在不在?')
print(student13+'在不在?')
print(student14+'在不在?')
print(student15+'在不在?')
print(student16+'在不在?')
print(student17+'在不在?')
print(student18+'在不在?')
print(student19+'在不在?')
print(student20+'在不在?')
print(student21+'在不在?')
print(student22+'在不在?')
print(student23+'在不在?')
print(student24+'在不在?')
print(student25+'在不在?')
print(student26+'在不在?')
print(student27+'在不在?')
print(student28+'在不在?')
print(student29+'在不在?')
print(student30+'在不在?')
print(student31+'在不在?')
print(student32+'在不在?')
print(student33+'在不在?')
print(student34+'在不在?')
print(student35+'在不在?')
print(student36+'在不在?')
print(student37+'在不在?')
print(student38+'在不在?')
print(student39+'在不在?')
print(student40+'在不在?')
print(student41+'在不在?')
print(student42+'在不在?')
print(student43+'在不在?')
print(student44+'在不在?')
print(student45+'在不在?')
print(student46+'在不在?')
print(student47+'在不在?')
print(student48+'在不在?')
print(student49+'在不在?')
print(student50+'在不在?')

运行结果:

党志文在不在?
浦欣然在不在?
罗鸿朗在不在?
姜信然在不在?
居俊德在不在?
宿鸿福在不在?
张成和在不在?
林景辉在不在?
戴英华在不在?
马鸿宝在不在?
郑翰音在不在?
厉和煦在不在?
钟英纵在不在?
卢信然在不在?
任正真在不在?
翟彭勃在不在?
蒋华清在不在?
双英朗在不在?
金文柏在不在?
饶永思在不在?
堵宏盛在不在?
濮嘉澍在不在?
戈睿慈在不在?
邰子默在不在?
于斯年在不在?
扈元驹在不在?
厍良工在不在?
甘锐泽在不在?
姚兴怀在不在?
殳英杰在不在?
吴鸿福在不在?
王永年在不在?
宫锐泽在不在?
黎兴发在不在?
朱乐贤在不在?
关乐童在不在?
养永寿在不在?
养承嗣在不在?
贾康成在不在?
韩修齐在不在?
彭凯凯在不在?
白天干在不在?
瞿学义在不在?
那同济在不在?
衡星文在不在?
公兴怀在不在?
宫嘉熙在不在?
牧乐邦在不在?
温彭祖在不在?
桂永怡在不在?

但我们知道,在编程世界里,最忌讳的就是“重复性劳动”。这一百行代码打下来,即使是复制黏贴修改的,分分钟也要抓狂。

实际上呢,只要学会了列表和循环(剧透:循环下一关会讲,可先忽略),3行代码就能搞定。

#直接运行代码即可
students = ['党志文', '浦欣然', '罗鸿朗', '姜信然', '居俊德', '宿鸿福', '张成和', '林景辉', '戴英华', '马鸿宝', '郑翰音', '厉和煦', '钟英纵', '卢信然', '任正真', '翟彭勃', '蒋华清', '双英朗', '金文柏', '饶永思', '堵宏盛', '濮嘉澍', '戈睿慈', '邰子默', '于斯年', '扈元驹', '厍良工', '甘锐泽', '姚兴怀', '殳英杰', '吴鸿福', '王永年', '宫锐泽', '黎兴发', '朱乐贤', '关乐童', '养永寿', '养承嗣', '贾康成', '韩修齐', '彭凯凯', '白天干', '瞿学义', '那同济', '衡星文', '公兴怀', '宫嘉熙', '牧乐邦', '温彭祖', '桂永怡']
for i in students:
    print(i+'在不在?')

运行结果:

党志文在不在?
浦欣然在不在?
罗鸿朗在不在?
姜信然在不在?
居俊德在不在?
宿鸿福在不在?
张成和在不在?
林景辉在不在?
戴英华在不在?
马鸿宝在不在?
郑翰音在不在?
厉和煦在不在?
钟英纵在不在?
卢信然在不在?
任正真在不在?
翟彭勃在不在?
蒋华清在不在?
双英朗在不在?
金文柏在不在?
饶永思在不在?
堵宏盛在不在?
濮嘉澍在不在?
戈睿慈在不在?
邰子默在不在?
于斯年在不在?
扈元驹在不在?
厍良工在不在?
甘锐泽在不在?
姚兴怀在不在?
殳英杰在不在?
吴鸿福在不在?
王永年在不在?
宫锐泽在不在?
黎兴发在不在?
朱乐贤在不在?
关乐童在不在?
养永寿在不在?
养承嗣在不在?
贾康成在不在?
韩修齐在不在?
彭凯凯在不在?
白天干在不在?
瞿学义在不在?
那同济在不在?
衡星文在不在?
公兴怀在不在?
宫嘉熙在不在?
牧乐邦在不在?
温彭祖在不在?
桂永怡在不在?

发现了吗?在第一行代码里,赋值号右边不再像字符串那样只能放一个名字,而是放了50个。

这就是我们要新认识的第一个数据类型——列表,下面我会从4个方面来介绍列表的用法。

什么是列表

首先,我们来看看列表(list)的代码格式:
在这里插入图片描述
图中的[‘小明’,‘小红’,‘小刚’]就是一个列表。

一个列表需要用中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用英文逗号隔开。

这就是列表的标准格式,现在请你创建一个列表名为list1的列表,列表里有三个元素:‘小明’,18,1.70,并将其打印出来:

参考答案:

list1=['小明','18','1.70']
print(list1)

恭喜你,成功掌握了列表的规范写法以及打印列表的方法。而且,你也用代码验证了一个知识点:列表很包容,各种类型的数据(整数/浮点数/字符串)无所不能包。

不过,很多时候,我们只需要用到列表中的某一个元素,好比老师上课点名时,不会说“所有的同学都站起来回答一下这个问题”。

所以,问题来了:列表中具体的某个元素,要如何取出来?

从列表提取单个元素

这就涉及到一个新的知识点:偏移量。列表中的各个元素,好比教室里的某排学生那样,是有序地排列的,也就是说,每个元素都有自己的位置编号(即偏移量)。

在这里插入图片描述

从上图可得:1.偏移量是从0开始的,而非我们习惯的从1开始;2.列表名后加带偏移量的中括号,就能取到相应位置的元素。

所以,我们可以通过偏移量来对列表进行索引(可理解为搜索定位),读取我们所需的元素。

假如你现在要喊小明来回答问题,用代码怎么写呢?请补充下列代码,利用列表的偏移量来打印出’小明’这个元素。

students = ['小明','小红','小刚']

参考答案:

students = ['小明','小红','小刚']
print(students[0])    

现在我们已经知道了如何从列表中取出一个元素,那如果要同时取好几个呢?所以我们接着学习如何从列表中取出多个元素。

从列表提取多个元素

这次,我不会直接告诉你需要用到的知识,而是想让你自己总结出规律。

请运行以下代码,对比代码和终端最后的结果,尝试发现当中的规律。我过会儿会考考你。

一个提醒:下列:左右两边的数字指的是列表中元素的偏移量,记住偏移量(索引)始终是从0开始的。

list2 = [5,6,7,8,9]
print(list2[:])
print(list2[2:])
print(list2[:2])
print(list2[1:3])
print(list2[2:4])

运行结果:

[5, 6, 7, 8, 9]
[7, 8, 9]
[5, 6]
[6, 7]
[7, 8]

上面这种用冒号来截取列表元素的操作叫作切片,顾名思义,就是将列表的某个片段拿出来处理。这种切片的方式可以让我们从列表中取出多个元素。

list2 = [5,6,7,8,9]

print(list2[:])
# 打印出[5,6,7,8,9]
print(list2[2:])
# 打印出[7,8,9]
print(list2[:2])
# 打印出[5,6]
print(list2[1:3])
#打印出[6,7]
print(list2[2:4])    
#打印出[7,8]

由此我们可以总结出来:

前半句:冒号左边空,就要从偏移量为0的元素开始取;右边空,就要取到列表的最后一个元素。
后半句:冒号左边数字对应的元素要拿,右边的不动(可再回顾下代码)。

现在就请你来试验一下吧,请修改代码,用切片将列表中小明和小红两个元素一起取出来。

students = ['小明','小红','小刚']

参考答案:

students = ['小明','小红','小刚']
print(students[:2])

另外,我们要注意一个细节:偏移量取到的是列表中的元素,而切片则是截取了列表的某部分,所以还是列表,请你运行下列代码看一看。

students = ['小明','小红','小刚']
print(students[2])
print(students[2:])

运行结果:

小刚
['小刚']

学完了如何取出列表中的元素,我们接着往下看。

给列表增加/删除元素

过了一周,你正上着课呢,教导主任突然领了一个新学生“小美”,说是转校生,要插到你们班。这时,我们就需要用到append()函数给列表增加元素,append的意思是附加,增补。

我们还是通过代码来试验一番,请你运行代码,并思考规律:(注:报错后,可读一下报错信息,然后在第6行开头加个#号,将其注释掉再运行)

# 请运行以下代码:报错后,可读一下报错信息,然后将第6行注释掉再运行。
list3 = [1,2]
list3.append(3)
print(list3)

list3.append(4,5)
list3.append([4,5])
print(list3)

你发现规律了吗?我们来解读一下报错信息和代码的结果:

在这里插入图片描述
这句话的意思是:append后的括号里只能接受一个参数,但却给了两个,也就是4和5。所以,用append()给列表增加元素,每次只能增加一个元素。

同时,从第7行代码 list3.append([4,5]) 能成功运行可以看出:

1.列表中的元素可以是字符串、数字等,也可以是列表本身 (即列表内部支持嵌套)
2.append函数后的参数只要满足数量为一即可 (单个列表也会视作一个元素)
3.append后的元素,会添加在列表的末尾。

append函数并不生成一个新列表,而是让列表末尾新增一个元素。而且,列表长度可变,理论容量无限,所以支持任意的嵌套。

现在,请你把小美加入students列表中,并打印出列表,注意格式是列表名.append( ):

参考答案:

students = ['小明','小红','小刚']
students.append('小美')
print(students)

很棒哟~现在你已经知道如何增添列表中的元素了。

又是新的一天,你接到一个电话,小红生病请假了,今天不来上课。所以,你要将小红从列表中删除。

提示:需要用到del语句。请你先读一下Python官方文档对“del语句”的解释:(懂得阅读官方文档也是编程学习中一个重要能力)

在这里插入图片描述
请你根据上图中的知识,补全下面的代码,将’小红’从列表中删除,并打印出来:(语法是:del 列表名[元素的索引])

students = ['小明','小红','小刚','小美']
print(students)

参考答案:

students = ['小明','小红','小刚','小美']
del students[3]
print(students)

事实上del语句非常方便,既能删除一个元素,也能一次删除多个元素(原理和切片类似,左取右不取)。

至此,我们对列表的基本概况已经摸了个遍,是时候总结一下了:

在这里插入图片描述
掌握了这些,列表这种数据类型,你就算入门了。后续就是在练习和项目中不断积累经验,活用列表。接下来我们就来学习另外一种数据类型。

数据类型:字典

众所周知,一个老师的日常就是出卷、改卷。这次期中考呢,小明、小红、小刚分别考了95、90和90分。

假如我们还用列表来装数据的话,我们需要新创建一个列表来专门放分数,而且要保证和姓名的顺序是一致的,很麻烦。

所以类似这种名字和数值(如分数、身高、体重等)两种数据存在一一对应的情况,用第二种数据类型——“字典”(dictionary)来存储会更方便。

什么是字典

同样的,我们先来看一下字典是长怎么样的:
在这里插入图片描述
仔细看下,字典和列表有3个地方是一样的:1.有名称;2.要用=赋值;3.用逗号作为元素间的分隔符。

而不一样的有两处:1.列表外层用的是中括号[ ],字典的外层是大括号{ };

students = ['小明','小红','小刚']
scores = {'小明':95,'小红':90,'小刚':90}

2.列表中的元素是自成一体的,而字典的元素是由一个个键值对构成的,用英文冒号连接。如’小明’:95,其中我们把’小明’叫键(key),95叫值(value)。

这样唯一的键和对应的值形成的组合,我们就叫做【键值对】,上述字典就有3个【键值对】:‘小明’:95、‘小红’:90、‘小刚’:90

如果不想口算,我们可以用len()函数来得出一个列表或者字典的长度(元素个数),括号里放列表或字典名称。

#直接运行代码即可
students = ['小明','小红','小刚']
scores = {'小明':95,'小红':90,'小刚':90}
print(len(students))
print(len(scores))

运行结果:

3
3

这里需要强调的是,字典中的键具备唯一性,而值可重复。

如果你不小心声明了两个以’小明’为键的【键值对】,后出现的【键值对】会覆盖前面的【键值对】。

# 请你运行下面的代码:
scores = {'小明': 95, '小红': 90, '小明': 90}
print(scores)

运行结果:

{'小明': 90, '小红': 90}

从字典中提取元素

现在,我们尝试将小明的成绩从字典里打印出来。这就涉及到字典的索引,和列表通过偏移量来索引不同,字典靠的是键。

# 请你运行下面的代码:
scores = {'小明': 95, '小红': 90, '小刚': 90}
print(scores['小明'])

运行结果:

95

这便是从字典中提取对应的值的用法。和列表相似的是要用[ ],不过因为字典没有偏移量,所以在中括号中应该写键的名称,即字典名[字典的键]。

现在请你将小红的成绩也打印出来吧,亲手打打代码,才能快速掌握。

参考答案:

scores = {'小明':95,'小红':90,'小刚':90}
print(scores['小红'])    

现在你也知道如何取出字典里的值了。

小刚拿到试卷后,下课后来找你,说把他总分算错了,应该是92分。你看了一下,发现还真的是。于是,你在成绩册上将90划掉,改成了92。

这个操作在代码里对应的是字典的删除和增加。

给字典增加/删除元素

我们还是先来看一个例子,运行下面的代码,留意字典怎么删除以及新增键值对:

# 直接运行下面的代码,留意字典以及新的键值对是如何增加的:

album = {'周杰伦':'七里香','王力宏':'心中的日月'}
del album['周杰伦']
print(album)

album['周杰伦'] = '十一月的萧邦'
print(album)
print(album['周杰伦'])

运行结果:

{'王力宏': '心中的日月'}
{'王力宏': '心中的日月', '周杰伦': '十一月的萧邦'}
十一月的萧邦

我们可以发现:删除字典里键值对的代码是del语句del 字典名[键],而新增键值对要用到赋值语句字典名[键] = 值。

那么,请你把小刚的成绩改成92分吧。对了,新来的小美也考了,得了85。请你对字典里进行修改和新增,然后将整个字典都打印出来。

怎么样,完成了吗?参考答案是这样的:

scores = {'小明':95,'小红':90,'小刚':90}
del scores['小刚']
scores['小刚'] = 92
scores['小美'] = 85
print(scores)

好了。至此,我们可以总结一下字典的基础知识:

在这里插入图片描述

列表和字典的异同

列表和字典同作为Python里能存储多条数据的数据类型,有许多共同点,也有值得我们注意的不同点,那么接下来我们先来看看不同点。

列表和字典的不同点

一个很重要的不同点是列表中的元素是有自己明确的“位置”的,所以即使看似相同的元素,只要在列表所处的位置不同,它们就是两个不同的元素。我们来看看代码:

# 如果==左右两边相等,值为True,不相等则为False。
print(1 == 1)  
# 1等于1,所以值为True

print(1 == 2)
# 1不等于2,所以为False

students1 = ['小明','小红','小刚']
students2 = ['小刚','小明','小红']
print(students1 == students2)

scores1 = {'小明':95,'小红':90,'小刚':100}
scores2 = {'小刚':100,'小明':95,'小红':90}
print(scores1 == scores2)

运行结果:

True
False
False
True

而字典相比起来就显得随和很多,调动顺序也不影响。因为列表中的数据是有序排列的,而字典中的数据是随机排列的。

这也是为什么两者数据读取方法会不同的原因:列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值。

列表和字典的相同点

我们先来看第一个共同点:在列表和字典中,如果要修改元素,都可用赋值语句来完成。看一下代码:

list1 = ['小明','小红','小刚','小美']
list1[1] = '小蓝'
print(list1)

dict1 = {'小明':'男'}
dict1['小明'] = '女'
print(dict1)

运行结果:

['小明', '小蓝', '小刚', '小美']
{'小明': '女'}

所以,上面修改小刚成绩的时候,其实直接用赋值语句即可,del语句通常是用来删除确定不需要的键值对。

scores = {'小明':95,'小红':90,'小刚':90}
#del scores['小刚']
#如果只需要修改键里面的值,可不需要del语句
scores['小刚'] = 92

第二个共同点其实之前已经略有提及,即支持任意嵌套。除之前学过的数据类型外,列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表。

先来看看第一种情况:列表嵌套列表。你在班级里成立了以四人为单位的学习小组。这时,列表的形式可以写成:

students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]

students这个列表是由两个子列表组成的,现在有个问题是:我们要怎么把小芳取出来呢?

可能你数着小芳是列表的第7个元素(从0开始),所以想students[7]不就能取到小芳吗?

事情当然没有那么简单,当我们在提取这种多级嵌套的列表/字典时,要一层一层地取出来,就像剥洋葱一样:

在这里插入图片描述
现在,我们确定了小芳是在students[1]的列表里,继续往下看。

在这里插入图片描述
小芳是students[1]列表里偏移量为3的元素,所以要取出小芳,代码可以这么写:

students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]
print(students[1][3])

现在,发挥你的聪明才智,从列表中取出小兰,并打印出来吧。

参考答案:

students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]
print(students[1][1])    

接下来,我们再来看看第二种情况:字典嵌套字典。

和列表嵌套列表也是类似的,需要一层一层取出来,比如说要取出小芳的成绩,代码是这样写:

scores = {
    '第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},
    '第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}
    }
print(scores['第二组']['小芳'])

请你仔细观察上面的代码,然后尝试取出小刚的成绩。

参考答案:

scores = {
    '第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},
    '第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}
    }
print(scores['第一组']['小刚'])

我们再来提高下难度,看看列表和字典相互嵌套的情况,可以将代码和注释结合起来看。

# 最外层是大括号,所以是字典嵌套列表,先找到字典的键对应的列表,再判断列表中要取出元素的偏移量
students = {
    '第一组':['小明','小红','小刚','小美'],
    '第二组':['小强','小兰','小伟','小芳']
    }
print(students['第一组'][3])
#取出'第一组'对应列表偏移量为3的元素,即'小美'

# 最外层是中括号,所以是列表嵌套字典,先判断字典是列表的第几个元素,再找出要取出的值相对应的键
scores = [
    {'小明':95,'小红':90,'小刚':100,'小美':85},
    {'小强':99,'小兰':89,'小伟':93,'小芳':88}
    ]
print(scores[1]['小强'])
#先定位到列表偏移量为1的元素,即第二个字典,再取出字典里键为'小强'对应的值,即99。

同样,现在请你自己试验一下吧,请在下列代码基础上 1.打印出字典students里的小刚 2.打印出列表scores里小刚的分数100。

参考答案:

students = {
    '第一组':['小明','小红','小刚','小美'],
    '第二组':['小强','小兰','小伟','小芳']
    }
scores = [
    {'小明':95,'小红':90,'小刚':100,'小美':85},
    {'小强':99,'小兰':89,'小伟':93,'小芳':88}
    ]
print(students['第一组'][2])
print(scores[0]['小刚'])    

相信你能成功做出来吧?为你鼓掌!祝贺你,对这两位新朋友的认识又更进一步。

那么,这一关的任务已经圆满完成啦。记得多复习,课后练习也要去做,能帮助你更好更快地巩固所学知识。

下一关,我们会开始接触Python里非常重要的工具——循环,有了它,许多重复性工作就可以让计算机帮我们完成。下一关见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/974867.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【NLP的python库(02/4) 】:Spacy

一、说明 借助 Spacy&#xff0c;一个复杂的 NLP 库&#xff0c;可以使用用于各种 NLP 任务的不同训练模型。从标记化到词性标记再到实体识别&#xff0c;Spacy 还生成了精心设计的 Python 数据结构和强大的可视化效果。最重要的是&#xff0c;可以加载和微调不同的语言模型以适…

宇凡微Y62R射频433接收芯片(功能强大的合封解决方案)

在现代科技领域&#xff0c;芯片技术的不断进步推动着无数创新应用的诞生。今天&#xff0c;我们将介绍一款功能强大的芯片——Y62R&#xff0c;这款芯片由宇凡微精心开发&#xff0c;融合了433接收功能和主控功能&#xff0c;为各种无线通信和控制应用提供了强大的解决方案。 …

nmp ERR! code ERR SOCKET TIMEOUT nmp ERR!network npmSocket timeout(已解决)

当安装vue-cli时&#xff0c;出现超时错误 npm ERR! code ECONNRESET npm ERR! network This is a problem related to network connectivity npm ERR! code ECONNRESET npm ERR! network aborted npm ERR! network This is a problem related to network connectivity. npm E…

GPT引领前沿与应用突破之GPT-4科研实践技术与AI绘图

查看原文>>>GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图 目录 专题一、AIGC概述 专题二、人工智能算法介绍 专题三、大语言模型Prompt提示词使用技巧 专题四、让GPT成为你的生活助理&#xff08;动手练习&#xff09; 专题五、让GPT成为你的工作秘书&…

Java入门基础知识

文章目录 关于JDK什么是JDK什么是JRE 关键字字面量,变量标识符 关于JDK 什么是JDK JDK是Java工具开发包,包含了JVM(程序运行环境),核心类库(直接应用即可),开发工具(Javac,java,jdb,jhat…) 什么是JRE JRE是Java运行环境,包含了JVM,核心类库,运行工具 JDK包含了JRE,JRE包含…

什么是50ETF期权开户条件,怎么开期权交易权限?

50ETF期权是指上证50ETF期权&#xff0c;标的物是上证50ETF&#xff0c;代码是&#xff08;510500&#xff09;&#xff0c;期权是一种在上证50ETF基础上进行衍生品交易的金融工具&#xff0c;下文科普什么是50ETF期权开户条件&#xff0c;怎么开期权交易权限&#xff1f;本文来…

我使用的Vim插件

2023年9月5日&#xff0c;周二下午 为了方便以后还原自己的Vim插件配置&#xff0c;于是写这篇博客来记录一下 不定期更新 目录 语法检查Syntastic文件树The NERD tree自动补全括号auto-pairs超轻量级自动补全vim-auto-popmenu 我使用的插件管理器是vim-plug 语法检查Syntas…

无涯教程-JavaScript - MONTH函数

描述 MONTH函数返回由序列号表示的日期的月份。月份以整数形式给出,范围从1(一月)到12(十二月)。 语法 MONTH (serial_number)争论 Argument描述Required/OptionalSerial_number 您要查找的月份的日期。 应该使用DATE函数或其他公式或函数的输出输入日期。 如果将日期作为文…

经纬恒润重磅推出第七代前视单目摄像头控制器

随着L2自动驾驶功能的普及&#xff0c;整车架构的升级&#xff0c;以及越来越高的法规要求&#xff0c;ADAS产品的开发迎来了更高的挑战&#xff1a;一方面&#xff0c;需要提高ADAS产品的整车性能&#xff0c;以应对更多的使用场景&#xff1b;另一方面&#xff0c;需要考虑AD…

【Python 实战】---- 批量绘制透明背景方形印章

1. 目标效果 2. 分析实现 可以使用 opencv 或者 PIL 进行绘制实现,但是由于 opencv 不能绘制中文,因此采用 PIL 进行印章制作;先绘制边框和隔离线;再绘制文字;最后给印章添加纹理。3. 绘制边框 3.1 绘制边框分析 通过 draw.rectangle 实现公用的矩形的绘制;获取图像长宽…

maven项目继承依赖中包版本的说明

继承 参考博客MAVEN的继承详解_parent中哪些标签可以被子项目继承_32224047_yw的博客-CSDN博客 https://blog.csdn.net/liupeifeng3514/article/details/80236827 dependencies 和dependencyManagement 在Maven多模块的时候&#xff0c;管理依赖关系是非常重要的&#xff…

冠达管理:上市破发是什么意思?

随着股票商场的开展&#xff0c;一些公司开端考虑走向上市&#xff0c;以取得更多的资金和更高的知名度。然而&#xff0c;上市并不总是一件功德。当一家公司的股票开端买卖时&#xff0c;如果它的股价远低于发行价&#xff0c;就可以说它遭遇了“破发”。这是一种负面事件&…

【CAD二次开发】重新加载acad.pgp快捷菜单文件

为了加快绘图速度&#xff0c;好多人会进行CAD快捷命令的修改&#xff0c;那怎么在不需要重启CAD的情况下自动更新&#xff1f; CAD修改acad.pgp,快捷命令后&#xff0c;自动更新。 方法一 命令行输入reinit&#xff0c;命令。 在弹出的窗口中&#xff0c;选择‘PGP文件’&…

【Linux详解】——共享内存

&#x1f4d6; 前言&#xff1a;本期介绍共享内存。 目录 &#x1f552; 1. 共享内存的原理&#x1f552; 2. 共享内存的概念&#x1f558; 2.1 接口认识&#x1f558; 2.2 演示生成key的唯一性&#x1f558; 2.3 再谈key &#x1f552; 3. 共享内存相关命令&#x1f552; 4. 利…

气象站是什么设备?功能是什么?

气象站是一种用于测量和记录气象数据的设备。它通常是由各种传感器及其数据传输设备、固定设备和供电设备组成&#xff0c;可以测量风速、风向、温度、湿度、气压、降水量等气象要素&#xff0c;并将这些数据记录下来&#xff0c;以便进一步分析和研究。 气象站通常设置在广阔…

从MySQL数据库中查出时间与数据库存储的时间不一致

1、TimeZone t TimeZone.getDefault(); 通过该方法查看系统的时区。 2、select global.time_zone,session.time_zone; 查看数据库的时区 3、在application.properties中配置&#xff1a; #SpringBoot默认的是Jackson框架转换&#xff0c;而Jackson默认的时间时区是GMT&…

动作分析:提升效率、改进质量、创新流程的秘密武器

动作分析的主要的用途和目的是排除多余的动作、无效的动作或缓慢的动作&#xff0c;如弯腰、站在凳子上、蹲着、工作场所差、缺少合适的工作设备、处于搜索状态的人和事等&#xff0c;形成标准化作业规范&#xff0c;从而通过最省力的方法达到最大的工作效率。这项研究可以不花…

为什么良好的客户服务对于成功的企业至关重要

图片来源于&#xff1a;SaleSmartly官网 良好的客户服务是任何成功企业的重要组成部分。提供卓越的客户服务有助于建立客户的信任和忠诚度&#xff0c;从而增加销售额和利润。它还对任何企业的声誉产生积极影响&#xff0c;带来更多客户和更好的口碑推荐。因此&#xff0c;企业…

【FusionInsight 迁移】HBase从C50迁移到6.5.1(03)6.5.1上准备Loader

【FusionInsight 迁移】HBase从C50迁移到6.5.1&#xff08;03&#xff09;6.5.1上准备Loader HBase从C50迁移到6.5.1&#xff08;03&#xff09;6.5.1上准备Loader登录新集群FusionInsight 6.5.1的Manager准备Loader服务准备Loader Role准备Loader User HBase从C50迁移到6.5.1&…

商家为什么要做微信小程序开发

一、引言 在移动互联网时代&#xff0c;微信已经成为人们生活中不可或缺的社交工具。微信小程序作为微信的一个重要扩展&#xff0c;以其轻便、易用、无需下载等特性&#xff0c;正在受到越来越多的关注。本文将详细探讨为什么需要进行微信小程序开发&#xff0c;以及微信小程…