如何学python 第十三课 列表进阶-切片,列表推导式 ---转载----玄魂工作室

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

 

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

 

什么是列表切片?

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

 

什么是列表推导式?

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

 

好,talk is cheap, let’s code!

 

提示

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

 

列表切片

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

创建列表:

如何学python 第十三课 列表进阶-切片,列表推导式 ---转载----玄魂工作室

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

如何学python 第十三课 列表进阶-切片,列表推导式 ---转载----玄魂工作室

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

 

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

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

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

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

【什么是切片增量】

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

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

LISTNAME[START:STOP:STEP]

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

如何学python 第十三课 列表进阶-切片,列表推导式 ---转载----玄魂工作室

 

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

 

列表推导式

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

如何学python 第十三课 列表进阶-切片,列表推导式 ---转载----玄魂工作室

 

先来分析语法。

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

 

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

 

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

 

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

如何学python 第十三课 列表进阶-切片,列表推导式 ---转载----玄魂工作室

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

如何学python 第十三课 列表进阶-切片,列表推导式 ---转载----玄魂工作室 

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

 

总结                      

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