python列表添加数字_Python小课堂第十三课:20分钟开胃菜,带你认识列表的基本操作...

dbb02bc3c67e03f7bd261831c8856142.png

今天的课程我们要给大家讲一讲Python编程中列表(list)功能。

请点击右上角“关注”按钮关注我们哟:跟着木辛老师学习Python编程知识,变身快乐的编程达人吧~

在之前的课程中,我们已经学习了通过Python在内存中存储信息,还可以使用名字来获取存储的信息。到目前为止,我们存储过字符串和数字(包括整数和浮点数)。

在Python中,还有一个非常有用的功能:就是可以把一堆东西放在(储存)一起,放在某种”组“或者”集合“中。这样一来,就可以一次对整个集合做处理,也更容易记录一组数据。

有一类集合叫做列表(list),在这次课里,我们就来学习一下列表的相关知识——什么是列表,如何创建、修改和使用列表。

列表非常的有用,很多很多程序里都用到了列表。咱们在之后的课程里还会深入讨论图形和游戏编程中的列表的应用,因为在游戏中有很多图形对象都需要存储在列表中。

列表是什么

如果我们想列举出来最喜欢吃的水果,你可能会这么写:

苹果
桃子
葡萄
西瓜

那么,在Python中应该怎么写呢?

fruit = [‘苹果’, ‘桃子’ , ‘葡萄’, '西瓜’]

嗯嗯,这个fruit就是Python中列表的例子,列表中的单个元素就叫做项或者元素(item)。可以看到,Python中的列表与日常生活中建立的列表并没有太大差异。列表使用中括号指出从哪里开始,到哪里结束,另外用逗号分隔列表内的各项。

创建列表

fruit是一个变量,咱们之前的课程曾经讲过,程序可以为变量赋予不同类型的值。我们已经为变量赋予过数字和字符串了,同样的还能赋值一个列表。

就像创建任何其他变量一样,创建列表也要为他赋某个值;另外还可以创建一个空的列表,比如:

empty_list = []

中括号里没有任何元素,所以这个列表是空的。

请小朋友们仔细思考一下哈:一个空列表有什么用呢?在什么情况下我们需要创建一个空列表呢?

嗯,在很多情况下,我们无法提前知道列表中会有什么,会有多少元素,也不知道这些元素是什么,只知道将会用到一个列表来保存一些内容。

所以啊,创建了一个空列表之后,程序就可以向这个列表增加元素了。但是,具体应该怎么操作呢?

向列表中添加元素

要向列表中添加元素,需要用到append()函数。在交互模式下代码应该这么写:

6817e743bc1faf2b68045736fd5c3b72.png

在Python程序里,咱们可以使用append函数无限制的往列表中追加元素,但是呢,请大家记住哈:

向列表中添加元素之前,必须先创建列表(可以是空列表,也可以非空)。这就像在做一个蛋糕,不能直接把各种配料倒在一起,而是需要先将配料倒入碗中,不然肯定会弄得到处都是哟!

木辛博士说
追加(append)是指把一个东西加在最后面。把一个数据追加到列表时,会把它增加到列的末尾。

列表中的内容

列表可以包含Python能存储的任何类型的数据,包括数字、字符串、对象,甚至可以包含其他列表。Python的列表并不要求其中的元素必须是同一个类型或者同一种东西。

这说明,一个列表中可以同时包含不同类型的内容:比如数字和字符串☟☟

45d7148d22822e501073b53324fe2aa9.png

通过列表获取元素

可以按照元素的索引(index)号从列表获取单个元素。列表索引从0开始,所以这个列表中的第一项就是

88886b4289565111a0b783a07c2944e7.png

同理,如果我们想获取到第四个元素,只需要填入索引3即可。

大家有没有注意到一个细节呢?

“为什么索引从0开始而不是1呢?”

非常好,小朋友们观察的非常仔细。在编程语言里,确实存在这个很神奇的细节,这个问题呢,自从计算机发明到现在,很多程序员、工程师还有计算机科学家们一直都在争论这个问题,这场争论应该也会一直持续下去吧,大家只要记好:事实就是如此,仅此而已。

木辛博士说
我们查了一些资料,有一些比较权威且被大多数人认可的解释是这样的:计算机使用的二进制数,也就是“比特”来存储一切信息。很久以前,因为计算机资源限制,这些比特是非常贵重的。每个比特都必须精挑细选,所以呀,为了更合理高效的利用这些资源,内存位置和列表索引也都是从0开始的。

这些细节大家了解一下就好了。

木辛博士说
索引(index)表示某个东西的位置,index的复数形式是indices。如果你在队伍中排在第4个,那么你在队伍中的索引就是4;不过呢,如果你在一个Python列表中排第四位,那么索引则会是3,因为Python的索引是从0开始的!

化整为零:列表的分片操作

8ce3c197023c73b993b4b0516b0080c1.png

在Python中,可以使用索引从列表一次取出多个元素。这个操作叫做 列表分片(slicing)

与for循环中的range()类似,分片获取元素时,会从第一个索引开始,不过在到达第二个索引之前停止。

正是由于这个原因,在前面的例子里我们只取回了3项,而不是4项。要记住这一点,一种方法就是牢记取回的项数总是两个索引数之差(4 - 1 = 3,所以取回了3项)。

关于列表分片,还有一个重要的问题需要谨记:对列表分片时取回的是另一个列表,这个列表称为原列表的一个分片;元列表的数据并没有发生改变;这个分片是原列表的副本。

一个思考题

讲到这里,我们留一个思考题给大家

请大家看一下,如下两个语句有什么不同呀?

d6caddf2322d8b9e057566d8af506e4c.png
小提示,大家可以通过之前学习的type函数入手解决这个问题哟

请小朋友持续关注我们哈,后续课程会将这些思考题和测试题的答案及其详细讲解发出来哈,请期待我们后续的课程吧~

是不是可以简洁一些

使用分片的时候可以采用一些简写的形式。

虽然采用这些简写,不会减少很多输入;但是我们不是一直在强调嘛,作为一个优秀的程序员,要寻求更加简洁的代码,同样的,世界上的优秀程序员都有这种思维,所以当我们在看别人的代码时,就不会被这些简写迷惑。

木辛博士说
这很重要,因为学习新的编程语言时(或者说学习编程时),阅读并理解他人的优秀代码是提升自我能力的一个最有效的手段。

如果想要分片中包括列表的开始部分,可以简写成如下方式:

087f38d33da35fa9991f09b322e29193.png

大家请注意,冒号之前是没有数字的;这样就会得到从列表开始位置一直到(但不包括)指定索引之间的所有元素。

同理,要得到列表末尾也可以写为:

6a52028bf43e4d91cc7c7ce6cbae4943.png

如果没有放入任何数字,而只是使用了冒号,则可以得到整个列表

c49ace22cd01fe99cac1e721a29a8c46.png

修改列表元素

可以使用索引来修改列表的某个元素;但是不能使用索引的方式向列表中增加新的元素。

67f0a728696501b49279bbff1b664ad1.png

看到上边的报错了吧?嗯,是的,如果试图修改一个不存在的东西,Python是不会允许的。

增加元素的其他方法

之前我们已经学习了通过append函数向列表中添加元素。

除了这种方式外Python还提供了另外一些方法。实际上,向列表中增加元素有3种方法:

  1. append() 向列表末尾增加一个元素
  2. extend() 向列表末尾增加多个元素
  3. insert() 向列表中的某个位置增加一个元素,需要告诉它在哪里增加元素

bba330f73e26cb022800a0b8f96c586e.png

小朋友们在学习的过程中要注意两点

  1. 使用extend()函数添加多个元素的时候,需要使用列表数据结构
  2. 使用insert()函数指定位置添加元素的时候,需要先指定位置,再指定插入的元素

有个小朋友问了:我怎么觉得append和extend这两个函数看起来好像呀!

嗯,是的,他们俩长的有些相像,但是之间确实存在一些差别,请看如下的例子

3e6a89bf94019d102ef58b75dc6d412f.png

使用append函数,每次添加的是一个元素;也就是说如果append一个列表的话,就是在源列表最后的位置增加一个子列表。

而使用extend函数,每次可以增加多个元素,虽然是使用了一个列表,但是会被当做多个元素分别插入到源列表的最后。

所以呀!小朋友们之后一定要分清哟!

删除它吧

咱们讲了查看元素,增加元素,取子列表的方法;现在的列表是不是很长很长了呀!

那么现在咱们学习如何删除元素吧!

Python提供了3种删除列表元素的函数和方法

  1. remove() 根据元素值删除列表中指定元素
  2. del 根据索引位置删除元素
  3. pop() 得到列表中最后一个元素,并从列表中删除

e1ab2c8ecf688a79ab80e3c9a667e8e3.png

大家在使用删除函数的时候一定要记得:只能删除已经存在的元素,不能删除不存在的元素!

Python中列表的基本操作我们今天就先学到这里吧,下一次课程我们会继续深入的讲解列表的其他操作:列表的搜索和排序。

小朋友们不要忘记关注我们哟 ,下期课程会带领大家学习Python中函数的概念:《Python小课堂第十四课:10分钟学会使用函数,让我们的程序更整洁》

快乐编程,快乐成长,咱们下次课再见!

咱们下次课再见,拜拜~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值