Python学习笔记4——列表和字典

这次的学习内容出现了新的名词,列表和字典,相比起前面的内容,这次的内容稍微提高了一点点的难度,但是也不是特别的难

列表

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’这一项,第二次是删除了字典中所有项,第三次是删除了整个字典,所以找不到字典了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

箬渊凡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值