这次的学习内容出现了新的名词,列表和字典,相比起前面的内容,这次的内容稍微提高了一点点的难度,但是也不是特别的难
列表
Python中的列表就是C语言中的数组,但是还是有所不同的,让我们先看一下代码体会一下:
student = [2019,'liming',21,97.5]
print(type(student))
运行结果如下:
list代表student是个列表。
Python的列表和C语言的数组比较一下就会发现,列表没有定义数据类型,在C语言中,需要定义数组的类型,定义好之后这个数组里面的元素只能是这个类型的,但是Python不用,因此Python里面的元素可以杂糅,什么样的元素都可以放进去。其次是在C语言中,数组需要用大括号,但是Python中列表需要使用中括号括起来,不知道是不是因为Python喜欢剥壳,连大括号都降级了。最后就是Python的列表不需要定义长度,也可以在打印的时候直接进行元素之间的运算。
给大家看一下代码:
student = [2019,'liming',21,97.5]
print(student[0])
print(student[0]+student[2])
运行结果如下:
请注意:虽然可以直接运算,但是不同类型之间的元素是不可以直接进行运算的。整型元素可以和浮点型元素一起运算,因为他们都属于数字,但是整型元素不能和字符串进行运算,因为他们不属于同一个类型。
上述介绍的是建立列表和对列表中的元素进行索引,接下来向大家介绍一下如何获取列表中元素的数量,及列表的长度。大家应该还记得在字符串那一次的笔记里面有写到,我们可以使用len获取字符串的长度,同理,我们可以使用len获取列表的长度:
student = [2019,'liming',21,97.5]
print(len(student))
运行结果如下:
因为在列表student中放了四个元素,因此列表student的长度为4。由此我们可以知道,列表的长度和里面元素的长度没有关系,只和元素的数量有关。
在Python中,修改列表元素也是比较方便的,我们只需要找到需要修改的元素的位置,然后直接利用索引进行修改就行了:
student = [2019,'liming',21,97.5]
student[0] = 2023
print(student)
运行结果:
打印列表也是直接使用print函数就行了,不需要像C语言一样写一个循环结构进行输出。还是比较简单方便的。
因为我不太擅长记忆的东西,所以我觉得下面是一个小重点,需要稍微的特别的记忆一下,就是Python的列表是可以添加元素的,添加元素需要用到代码.append(需要添加的元素),这个代码添加元素只可以添加到列表的最末位:
student = [2019,'liming',21,97.5]
student[0] = 2023
student.append('Chinese')
print(student)
运行结果如下:
有添加就有删除,删除相对来说比较方便,因为他可以删除掉列表中任意一个元素,只要对元素的索引的位置是正确的:
student = [2019,'liming',21,97.5]
print(student)
student[0] = 2023
print(student)
student.append('Chinese')
print(student)
del student[2]
print(student)
运行结果如下:
当然,除了这个,还有一个方法是可以直接删除掉最后一个元素的,用方法是.pop():
student = [2019,'liming',21,97.5]
print(student)
student[0] = 2023
print(student)
student.append('Chinese')
print(student)
del student[2]
print(student)
student.pop()
print(student)
运行结果如下:
但是这里注意,del是真的就删除了,列表里面就不存在这个元素了,但是.pop()这个语言是将列表中最后一个元素拿出来了,如果没有东西存储,那就不知道拿那边去了,如果用一个元素存储,那么就可以发现,这个元素存储了拿出来的那个元素:
student = [2019,'liming',21,97.5]
print(student)
student[0] = 2023
print(student)
student.append('Chinese')
print(student)
del student[2]
print(student)
a = student.pop()
print(student)
print(a)
运行结果如下:
当然,.pop()语言既然有括号,那就说明括号里面是可以填写东西的,如果什么都不填,那自然是默认提出列表中最后一个元素,如果填写了元素的下标,那么提出的就是那个位置的元素:
student = [2019,'liming',21,97.5]
print(student)
student[0] = 2023
print(student)
student.append('Chinese')
print(student)
del student[2]
print(student)
a = student.pop(1)
print(student)
print(a)
运行结果如下:
之前提到过列表是没有长度固定的,这也就意味着,我们对列表的链接是可以和字符串一样直接链接的:
student1 = [2019,'liming']
student2 = [2020,'zhangwei']
print(student1+student2)
运行结果如下:
这个可能不太能体现出列表不需要固定长度的好处,那我再说一个链接列表的方法:
student1 = [2019,'liming']
student2 = [2020,'zhangwei']
student1.extend(student2)
print(student1)
运行结果:
除了上面讲的那些功能,列表还可以查询我们所需要的元素是否在此列表里面:
student1 = [2019,'liming']
student2 = [2020,'zhangwei']
student1.extend(student2)
print(student1)
print(2023 in student1)
【想要查找的元素】 in 【目标列表】就可以知晓我们想要查找的元素是否在这个列表里,上述代码的运行结果为:
如果大家记忆力还不错,就应该还能记得在字符串那边讲过的几个函数,比如什么查找字符串里面的某个字符出现过几次,第一次出现的下标是什么这样的,在列表中也同样适用:
student1 = [2019,'liming']
student2 = [2019,'zhangwei']
student1.append(student2)
print(student1.count(2019))
print(student1.index(2019))
运行结果如下:
字典
用电话簿来举例,我们需要在字典里面存放联系人的姓名和他的手机号,那么这个时候用字典就可以完成,字典里面的元素是以一一对应的关系,同时查找的时候只需要查找姓名就可以了:
phone = {'smith':'123','liming':'234','mike':'345'}
print(phone['smith'])
运行结果为:
由上述代码可以发现,字典的格式为 【字典名】={a1:b1,a2:b2}
给字典赋值的方法和列表一样,也是直接赋值就行了,但是不能给同一个a赋值多次,如果赋值多次,只会采用最后一次的赋值,另外,给a赋值,改变的是b的值:
phone = {'smith':'123','liming':'234','mike':'345'}
phone['smith'] = '789'
phone['smith'] = '012'
print(phone)
运行结果为:
注意:在字典中a是不能相同的,但是b可以相同
同样的字典也可以添加元素,也是直接添加就行了
phone = {'smith':'123','liming':'234','mike':'123'}
phone['lilei'] = 456
print(phone)
运行结果为:
删除也是:
phone = {'smith':'123','liming':'234','mike':'123'}
phone['lilei'] = 456
print(phone)
del phone['smith']
print(phone)
phone.clear()
print(phone)
phone['Chinese'] = 960
print(phone)
del phone
print(phone)
运行结果如下:
由此可见,第一次删除是删除了字典中的‘smith’这一项,第二次是删除了字典中所有项,第三次是删除了整个字典,所以找不到字典了。