前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何学Python 第十三课 列表进阶-切片,列表推导式

如何学Python 第十三课 列表进阶-切片,列表推导式

作者头像
用户1631416
发布2018-04-11 17:01:43
7550
发布2018-04-11 17:01:43
举报
文章被收录于专栏:玄魂工作室玄魂工作室

第十三课 列表进阶-切片,列表推导式

欢迎回来。在上一节课,我们学习了逻辑运算符和成员运算符。按照惯例,这节课我们讲点其他的东西,换换脑筋。

本节课我们来介绍一些列表的高级功能。这节课我们来讨论列表的切片和列表推导式。在介绍之前,我们先介绍一下背景知识。

什么是列表切片?

切片。字面意思,就是把一个大的东西切成小的。当我们切割列表的时候,我们需要提供的几件事是从哪儿开始切,在哪儿停下,以及切片增量。列表切片在某些情况下很有用,但是在实际使用中不怎么常见。虽然如此,我们还是了解一下,毕竟它是个挺高端的技能。

什么是列表推导式?

列表推导式会以现有列表为基础创建新的列表。我们列表推导式部分给出两个例子:一个数字类型的,一个string类型的。一定要理解一点:列表推导式一定要基于要给现有存在的列表。我们会在例子里看到这点。

好,talk is cheap, let’s code!

提示

列表可以被反向索引。在进行反向索引的时候,-1指向了倒数第一个元素,-2指向倒数第二个元素,以此类推。这会是个非常有用的特性。

列表切片

如果我们想要切列表,你首先需要一个列表。我们先创建个列表好了。我们会在列表里放两个句子,以词为单位。我们会用切片来把它们分成两个句子。

创建列表:

现在让我们来做切片。我们先来来看代码,然后进行分析。

在上面的代码中,我们把第一个切片放进了新声明的变量sentence1,然后打印出了这个被切割后的新列表。我们来看看具体的语法。

当对列表进行切片的时候,我们必须把被切的列表喊出来,在例子里,这个被切的列表是test;然后我们在后面的方括号里放上我们需要提供的参数,他们是:

开始切割的位置,这是第一个参数

结束切割的位置,这是第二个参数

最后,我们需要填上切片增量(increment),这不是一个必填参数。它也被叫做‘step’

【什么是切片增量】

注意,在最开始,test里的英文词序是混乱的,两个句子被穿插在了一起。经过切割之后,词汇的顺序正常了,这正归功于‘增量’参数--切片会根据这个参数,每两个元素取一个。

所以,最后,它看起来应该是这样的:

LISTNAME[START:STOP:STEP]

好啦,现在我们来切一下第二个句子:

好的,切片技能GET!我们接下来学一下列表推导式。

列表推导式

开门见山,列表推导式就是以旧的列表为基础,生成新的列表。待会儿我会分别演示用数字类型的列表和string类型的列表进行列表推导:

先来分析语法。

我们使用了一个临时声明的变量x,x后面跟了一个for循环,迭代了range(0,51)返回的每一个值。这些东西都被放进了方括号里。当我们输出的时候,我们发现返回的东西是0到50.

接下来我们来做了个过滤,用”if x%2 ==0”来做。它的意思是,”如果x可以被2除尽”。换句话收,我们得到了这个范围里的所有偶数。

这个过滤的工作方式是,如果条件语句为真,那么x就会被包含进结果列表里。就是这样。现在我们来用字符串类型举例子。

用随机被大写的词汇做列表:

我们接下来要用列表推导式做的,是把上面这个列表里的所有字符串元素都变成小写的:

我们会发现这跟数字类型的差不多。

总结

我们成功的拓展了对list的了解。这是了不起的一步。今天我们学的东西可能不是很常用,但应用得当的话,他们会很有用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档