python学习-------第三天(操作列表)

                                          操作列表

1、遍历整个列表

        1.1使用for()循环

 

      1.2在for()循环中执行更多的 操作

 

相比前一段代码,本唯一的不同是对于每位魔术师,都打印了一条以其名字为开头的消息。

在for循环中,想包含多少行代码都可以。在代码 for magician in magicians :后面,每个缩进的代码行都是循环的一部分,并且针对列表中的每个值都执行一次,因此,可对列表中的 ,诶个执行任意次数的操作。

下面再添加一行代码,告诉每位魔术师,我们期待他的下一次表演。

1.3在for循环结束后执行一些操作

在for循环后面,灭有缩进的代码都只执行一次,而不会重复执行。下面打印一条向全体魔术师致谢的消息,感谢 他们的精彩 表演。想要在打印给各位魔术师的消息后面打印一条给全体魔术师的致谢消息,需要将相应的代码放在for循环后,且不缩进:

2、避免缩进错误

Python根据缩进来判断代码行与前一行的关系。

当你开始编写必须正确缩进的代码时,需要注意一些常见的缩进错误。例如,有时候,程序会将不需要缩进的代码块缩进,而对于必须缩进的代码块却忘了缩进。

下面看一些常见的缩进错误

   2.1忘记缩进

对于位于for语句后面且属于循环组成部分的代码行,一定要缩进。如果忘记缩进,python会提醒:

通常,将紧跟在for语句后面的代码缩进,可消除这种缩进错误。

    2.2忘记缩进额外的代码行

有时候不会报错,但是结果可能出乎意料。试图在循环中执行多想任务,却忘记缩进其中的一些代码行时,就会出现这种情况:

这是一个逻辑错误。从语法上看这些代码时合理的,但是由于从在逻辑错误,并不符合预期。如果预期某项操作针对列表元素都执行一次,但是只执行了一次,请确定是否需要将一行或者多行代码缩进。

    2.3不必要的缩进

Print语句无需缩进,因为并不属于前一行代码,因此python将指出这种错误。

     2.4循环后不必要的缩进

如果不小心缩进了应该在循环结束后执行的代码,这些代码将针对每个列表元素重复执行。有些情况下,这可能导致python报错,但是在大多数情况下,这会会导致逻辑错误。

  2.5遗漏了冒号

For语句末尾的冒号告诉python,下一行时循环的第一行。

 如果不小心遗漏了冒号,就将导致语法错误。

 

练习:想出至少三种有共同特征的动物, 将这些动物的名称存储在一个列表中, 再使用for 循环将每种动物的名称都打印出来。
修改这个程序, 使其针对每种动物都打印一个句子, 如“A dog would make a great pet”。
在程序末尾添加一行代码, 指出这些动物的共同之处, 如打印诸如“Any of these animals would make a great pet!”这样的句子。

 

3、创建数值列表

列表非常适合用于存储数字集合,而python提供了很多工具,可帮助你高效地处理数字列表。

3.1使用函数range()

Python函数range()让你轻松的生成一系列的数字。

例如:

这个示例中,range()只打印数字1~4.。函数range()让python从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此不包含第二个值(这里是5)。这是一个半闭半开区间。

如果想要打印1~5,就用range(1,6)。

使用range()时,如果输出不符合预期,尝试将指定的值加1或者减1.

3.2使用range()创建数字列表

要创建数字列表,可使用函数list()将range()的结果直接转换为列表。如果 将range()作为list()的参数,输出将为一个数字列表。

使用函数range()时,还可指定步长。例如,下面打印1~10内的偶数

这个示例中,函数range()从2 开始,然后不断的加2,直到达到或者超过终值11.

使用函数range()几乎能创建任何需要的数字集,例如,创建一个列表,其中包含前10个整数的平方。。在python中(,两个星号**)表示乘方运算。

首先创建一个空列表,接下来,使用函数range()让python遍历一遍1~10的值。在循环中,计算当前值得平方,并将结果存储到变量square中,然后将计算得到的平方值附加到列表squares中。最后循环结束,打印列表squares。

3.3对数字列表执行简单的统计计算

有几个专门用于处理数字列表的python函数。例如,你可以轻松地找出数字列表的最大值、最小值和总和。

本节使用的数字列表很短,但是这里介绍的知识也适用于包含数百万个数字的列表。

3.4列表解析

前面生成列表squares的方式包含三四行代码,而列表解析只需要写一行代码就能生成这样的列表。列表解析 将for循环和创建新元素的代码合并成一行,并自动附加新元素。

下面用列表解析创建平方数列表:

使用这种语法,首先指定一个描述性的列表名,如message;然后,指定一个左方括号并定义一个表达式,用于生成你要存储到列表中的值。这个示例中,表达式是value**2,计算平方值。接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。在这个示例中for循环为for value inrange(1,11),他将值1~10提供给表达式value**2,注意这里的for没有冒号。

练习:

创建一个列表,其中包含数字1~1000000,再使用min(),max(),sum()核实列表确实从 1开始,1000000结束的。另外对这个列表调用函数sum()。

练习:使用range()三个参数,打印1~20的所有奇数

练习:创建一个列表,其中包含3~30内能被3整除的数字,并用for循环将这个列表中的数字都打印出来。

练习:将同一个数字乘三次称为立方。例如,python中,2的立方用2**3表示,创建一个列表,其中包含前1个整数的立方。

 

4、使用列表的一部分

在上一章学习了如何访问单个列表元素。在本章,学习如何处理列表的所有元素。还可以处理列表的部分元素------python称之为切片。

4.1切片

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

没有指定起始索引,python从列表头处开始

要将切片终止于列表末尾,也可用类似的方法

复数索引返回离列表末尾相应距离的元素,因此你可以输出列表末尾的任何切片。

4.2遍历切片

如果要遍历列表的部分元素,可在for循环中使用切片。

我们遍历前三名队员,并打印他们 的名字

上述代码没有遍历整个队员列表,而只是遍历前三名队员

4.3复制列表

要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。这让python创建一个起始于第一个元素,终止于最后一个元素的切片。即复制整个列表。

分别给my_foods列表和friend_foods列表加入新的食物,打印

发现latiao 在my_foods列表而不在friend_foods列表,Apple在friend_foods列表,而不在my_foods列表。倘若我们简单的将my_foods赋给friend_foods列表,就不能得到两个列表。下边用不切片的方式:

这种语法实际上是让python将新变量friend_foods关联到包含my_foods中的列表。因此这两个列表指向同一个列表。

5、元组

列表非常适合用于存储在程序运行期间可能变化的数据集,列表是可以修改的,然而有时候你需要创建一系列不可修改的元素。元组可以满足这种需求。Python将不能修改的值称为不可变的,而不可变的列表称为元组。

5.1定义元组

元组看起来犹如列表,但使用 圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。

例如:有一个大小不应改变的三角形,可将其三条边存储在元组中,从而确保他们是不能修改的。

尝试修改元组元素的值

5.2遍历元组中的所有值

像列表一样,也可以使用for循环来遍历元组中的所有值

5.3修改元组变量

虽然不能修改元组的元素,但可以给存储元组的变量赋值。

 

 

猜你喜欢

转载自blog.csdn.net/qq_42159433/article/details/83993438
今日推荐