本文继续Python基础进行学习,内容接连上篇文章:Python基础学习笔记一(变量和数据类型),希望我的经验可以帮到大家!注:文中实例均于Jupyter notebook下编译。
Python学习笔记——列表
列表是Python中内置有序可变序列,列表的所有元素放在一对中括号“[ ]”中,并使用逗号分隔开,如果你让Python将列表打印出来,Python将打印列表的内部表示,包括中括号。一个列表中的数据类型可以各不相同,可以同时分别为整数、实数、字符串等基本类型,甚至是列表、字典以及其他自定义类型的对象。
1.1 列表元素
1.1.1 访问列表元素
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元 素的索引,并将其放在方括号内。注意:索引从0开始而不是1,访问最后一个列表元素有一种特殊语法,通过将索引指定为-1 ,可让Python返回最后一个列表元素。
1.1.2 使用列表元素
1.1.3 修改列表元素
修改列表元素的语法与访问列表元素的语法类似。要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。
1.1.4 添加列表元素
(1) 在列表末尾添加新元素
append( )方法给列表附加元素时,它将添加到列表末尾。
(2) 在列表任意位置添加新元素
insert()方法在列表自定义位置插入元素,因此需要指定新元素的索引和值。
(3) 将一个列表的全部元素插入另一个列表中
1.1.5 删除列表元素
在列表中删除一个或多个元素时,可以根据位置或值来删除列表中的元素。
(1) 知道索引来删除元素
del( )语句可以删除任何位置处的列表元素,条件是知道索引,且将值从列表中删除后,就无法访问了。
pop( )方法用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值,让你能够接着使用它。
(2) 知道值来删除元素
有时候,不知道要从列表中删除的值所处的位置。如果只知道要删除的元素的值,可使用方法remove( )。使用remove( )从列表中删除元素时,也可接着使用它的值。
注意:remove( )方法只删除第一个指定的值,若要删除所有相同的值,我们可以用循环来删除所有的。
1.2 组织列表
1.2.1 列表排序
在并非所有的值都是小写时,按字母顺序排列列表要复杂些,因此在进行排序时,最好先把所有字母转换为小写字母。
(1) 永久性排序
sort( )方法对列表进行永久性排序,永久性地修改了列表元素的排列顺序,这种排序是按照字母顺序的,且再也无法恢复到原来的排列顺序。
还可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort( )方法传递参数reverse=True。
(2) 临时性排序
要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted( )。函数sorted( )让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
注意:调用函数sorted( )后,列表元素的排列顺序并没有变。如果你要按与字母顺序相反的顺序显示列表,也可向函数sorted( )传递参数reverse=True。
1.2.2 倒着打印列表
要反转列表元素的排列顺序,可使用方法reverse( )。注意:reverse ( )不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序,它永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用reverse( )即可。
1.2.3 确定列表的长度
使用函数len( )可快速获悉列表的长度。注意:Python计算列表元素数时从1开始。
1.3 操作列表
1.3.1 遍历整个列表
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法模式:for iterating_var in sequence:
(1) 遍历数字序列
(2) 遍历一维字符串数组
(3) 遍历字符串
for循环中和结束后都可进行一系列的操作:
Python通过使用缩进让代码更易读,当开始编写必须正确缩进的代码时,需要注意一些常见的缩进错误:不要忘记缩进,不要缩进额外的代码行,不要进行多余的缩进,不要遗漏for循环中的冒号。
1.3.2 创建数值列表
(1) 函数range( )的使用
Python函数range( )让你能够轻松地生成一系列的数字:
注意:运行结果是打印数字1到4,即该函数的运行结果到指定的第二个值停止,不包含指定的第二个值。因此,使用range( ) 时,如果输出不符合预期,请尝试将指定的值加1或减1。
(2) 使用range( )函数创建数字列表
要创建数字列表,可使用函数list( ) 将range( ) 的结果直接转换为列表。如果将range( ) 作为list( ) 的参数,输出将为一个数字列表:
注意:使用函数range() 时,还可指定步长,在上述例子中,函数range( ) 从1开始数,然后不断地加2,直到达到或超过终值(5)。
(3) 对创建的数值进行运算
(4) 对数字列表进行简单的统计计算
Python中有几个专门用于处理数字列表的函数。此处举例找出数字列表的最大值、最小值和总和:
(5) 列表解析
列表解析让我们只需编写一行代码就能生成这样的列表。列表解析将for 循环和创建新元素的代码合并成一行,并自动附加新元素。
运行结果和上边一样,但代码块得到了很大的简化。
注意:我觉得可以理解为将for循环的代码块倒着依次放入创建的空列表的方括号中。写代码时感觉容易遗漏的就是[ ],一旦漏写就会报错。
1.3.3 使用列表的一部分
(1) 切片
列表的部分元素称之为切片。要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函 数range( ) 一样,Python在到达你指定的第二个索引前面的元素后停止。
例如:要输出列表中的前三个元素,需要指定索引0~3,这将输出分别为0 、1 和2 的元素。
如果你没有指定第一个索引,Python将自动从列表开头开始:
如果你没有指定最后一个索引,Python将自动到列表末尾结束:
(2) 遍历切片
如果要遍历列表的部分元素,可在for 循环中使用切片:
(3) 复制列表
要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索 引和终止索引([:] )。这让Python创建一个始于第一个元素,终止于 最后一个元素的切片,即复制整个列表:
1.3.4 元组
列表是可以修改的,Python将不能修改的值称为不可变的 ,而不可变的列表被称为元组。元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。
(1) 遍历元组中的所有值
像列表一样,也可以使用for 循环来遍历元组中的所有值:
(2) 修改元组变量
虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改元组元素,可重新定义整个元组:
(3) 设置代码格式
缩进:
建议每级缩进都使用四个空格,这既可提高可读性,又留下了足够的多级缩进空间。在字处理文档中,大家常常使用制表符而不是空格来缩进。对于字处理文档来说,这样做的效果很好,但混合使用制表符和空格会让Python解释器感到迷惑。
每款文本编辑器都提供了一种设置,可将输入的制表符转换为指定数量的空格。你在编写代码时应该使用制表符键,但一定要对编辑器进行设置,使其在文档中插入空格而不是制表符。在程序中混合使用制表符和空格可能导致极难解决的问题。如果你混合 使用了制表符和空格,可将文件中所有的制表符转换为空格,大多数编辑器都提供了这样的功能。
行长:
很多Python程序员都建议每行不超过80字符。最初制定这样的指南时, 在大多数计算机中,终端窗口每行只能容纳79字符;当前,计算机屏幕每行可容纳的字符数多得多,为何还要使用79字符的标准行长呢?这里有别的原因。专业程序员通常会在同一个屏幕上打开多个文件,使用标 准行长可以让他们在屏幕上并排打开两三个文件时能同时看到各个文件的完整行。PEP 8还建议注释的行长都不超过72字符,因为有些工具为大型项目自动生成文档时,会在每行注释开头添加格式化字符。
在大多数编辑器中,都可设置一个视觉标志——通常是一条竖线,让你知道不能越过的界线在什么地方。
空行:
要将程序的不同部分分开,可使用空行。你应该使用空行来组织程序文件,但也不能滥用;只要按本书的示例展示的那样做,就能掌握其中的平衡。空行不会影响代码的运行,但会影响代码的可读性。Python解释器根据水平缩进情况来解读代码,但不关心垂直间距。