首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

零基础机器学习之Python基础-(5)遍历、切片与元祖

阅读文本大概需要 6 分钟。

前言

上节课大家学习了什么是列表,这节课咱们来更进一步的操作列表,而且我们还会学习一些很重要的概念如循环、切片和元祖等。

列表的遍历

你经常需要遍历列表的所有元素,对每个元素执行相同的操作。例如,在游戏中,可能需要将每个界面元素平移相同的距离;对于包含数字的列表,可能需要对每个元素执行相同的统计运算;在网站中,可能需要显示文章列表中的每个标题。

需要对列表中的每个元素都执行相同的操作时,可使用 Python 中的 for 循环。下面使用for循环来打印柠檬的爱好列表:

for循环

输出如下所示:

我们可以看到在显示台上按顺序打印出了我们的爱好列表中的元素,这是因为我们在第二行代码中定义了一个for循环,这行代码会让Python从列表hobbies中取出一个元素,并将其存储在变量hobby中,最后我们让Python打印存储在hobby中的元素。

这样,我们就是实现了重复打印列表中的每个元素。循环这种概念很重要,因为它是让计算机自动完成重复工作的常见方式之一。

我们来解读一下上面的三行代码,在第一次执行第三行代码:print(hobby)的时候,Python会把列表中的第一个元素singing存储在变量hobby中然后打印出来,因为列表中还有其他两个元素。所以程序又返回到第二行,然后将第二个元素存储在变量中打印出来,这种情况我们称之为:遍历。

刚开始使用循环时请牢记,对列表中的每个元素,都执行循环指定的步骤,而不管列表包含多少个元素。如果列表包含一百万个元素,Python 就重复执行指定的步骤一百万次,且通常速度非常快。而且for循环的变量名最好也跟普通变量一样,做到见闻知意。

循环结束后的操作

以前柠檬已经说过很多次了,Python是一门非常优雅的语言,这一点在循环结束后的操作上也可以很好的体现,我们现在就来看看Python是怎么判定循环结束的。

如果以前学过java、C等其他语言的同学应该知道,判定循环结束的标志是大括号:{},但Python将大括号给扔掉了,改为更简洁、更优雅的缩进。例如我想在打印完自己所有爱好之后加上一句话,我就可以这样写:

循环结束

输出

我们可以看到,Python优雅的利用缩进来判定循环是否结束,通过使用缩进让代码更易读;简单地说,它要求你使用缩进让代码整洁而结构清晰。在较长的 Python程序中,你将看到缩进程度各不相同的代码块,这让你对程序的组织结构有大致的认识。

值得注意的一点是,如果我们多写了不必要的缩进或者忘了在for循环后面加上缩进,亦或是在for循环后面忘记加上冒号,Python程序都会提醒我们。

列表进阶操作

首先我给大家介绍一个能快速创建数字列表的方法:range(),然后我会教大家如何去使用列表的其中一部分,因为我们以后接触的列表可能长达上百万的元素,所以只使用列表的其中一部分是非常有必要的。

Python 函数 range() 让你能够轻松地生成一系列的数字。例如,可以像下面这样使用函数 range() 来打印一系列的数字:

range方法

输出

这里要注意,range方法中写的两个参数是1和10,但它不包含10,所以方法只生成1 - 9这十个数字,这里一定不能以为有11个元素。

接下来我们用list方法将这些数字转换为列表:

list方法

接下来我们就要来使用这个列表中的一部分了。

切片

在上面,我们已经学习了如何使用列表中的单个元。和便利,所以但是在现实情况中有很多时候我们只需要使用列表中的一部分元素,这在Python程序中称为切片。

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range() 一样, Python 在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需要指定索引 0~3 ,这将输出分别为 0 、 1 和 2 的元素。如下代码所示:

切片

上面的代码清晰的展示了切片,我们第四行代码中的两个参数是2和5,所以切片会切出list的第2到第4个元素,注意这里是第4个而不是第5个。柠檬在以前学Python的时候没有意识到切片有多重要,但是后面在做机器学习的时候才发现遍地都是切片。

如果没有指定第一个参数的话,Python会从头打印到第二个指定的参数之前一个,如下所示:

切片

输出

关于更详细的切片操作,柠檬在这里给出介绍切片的网址,大家可以去看看,

下面我们就来讲今天最后一个概念:元祖。

元祖

简单的说,元祖就是不能修改的列表,比如我们想定义一个不准备修改的,就可以使用元祖:

元祖

我们可以看到,如果想修改元祖的话,程序是会显示报错的。虽然不能修改元祖,但我们可以重新给元祖赋值,这个大家下去可以自己敲一敲试试。

总结

今天我们学习的东西有点多,有遍历,有切片,还有元祖,都是我们在实际开发中最常用的功能,常用到你不知不觉就已经用了,好了,下面我还是会贴出回顾,大家再花一分钟看一下回顾,这一分钟的价值可能值十分钟!咱们下节课再见!

回顾

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180720G0GPJ000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券