Python中对列表的操作
Python中对列表的操作
1.遍历整个列表
在列表中有许多元素,因此我们可以像遍历数组那样用for循环遍历列表。
Python中的for循环跟C中的不太一样,有点像Java中的增强for循环。更为的简洁易懂。
语法如下:
for 变量名 in 列表名 :
对列表中变量的操作…
深入研究循环
我们分析一下刚才截图中for循环的执行过程。
首先,程序运行第一行,for循环让程序能够提取list1中的第一个值,并赋值给val,然后程序执行第二句print语句,将val值打印出来。因为列表中还有元素,程序又返回for语句,将第二个元素的值赋给val,再执行print语句,重复循环,直到遍历完list1中的最后一个元素。
2.避免缩进错误
与Java,C不同,Python中用缩进代替了括号,使得程序看起来更加的简介,Python会根据缩进来判断代码行与前一个代码行的关系。
例如刚才的截图,for循环语句下面的print语句前面有缩进,Python就知道该语句是在for循环之内的语句。
我们在编程时要尽量避免缩进引起的错误,常见的缩进错误分为两种:一种是忘记缩进,缺少缩进;另一种就是多余的缩进。
还有一点需要注意的是:for循环语句的后面一定要跟一个冒号(:),不然程序会报错!
3.创建数值列表
3.1使用range()函数
range()能够产生一系列的数字,第一个参数为开始的位置,第二个参数为结束的位置。例如range(1, 5)能够产生1, 2, 3, 4这四个数,需要注意的是,这只是打印1-4,不会打印5,因为Python从我们指定的第一个数开始,在这到达指定的第二个值后就会停止,因此输出不包含第二个值(即5)。如果我们需要产生1-5这五个数字,则需要使用range(1, 6)。
3.2使用range()函数创建数值列表
要创建数值列表,我们可以使用list()函数将range()的结果直接转换为列表。直接将range函数作为list函数的参数。
range()函数还可以指定步长,第三个参数即为步长。
下面演示如何将1-10个数的平方放入列表中:
3.3对数字列表执行简单的统计计算
Python中可以用min(),max(),sum()函数对数字列表进行操作:
min()返回列表中最小的数字;
max()返回列表中最大的数字;
sum()返回列表中所有数字的和。
3.4列表解析
用上面生成1-10的平方的列表这个例子,我们用列表解析可以直接一行代码就可以实现。
我们可以看到,我们可以直接把for循环放入列表括号里面,for循环中的操作在前,for循环语句在后(注意:列表解析中for后面不用加冒号(:))。
4.使用列表的一部分
4.1切片
切片就是返回一个列表的一段,格式如下:
list1[第一个索引 : 第二个索引]
和range()函数一样,我们可以指定第一个索引和第二个索引加1,Python在到达第二个索引前面的元素后就会停止。如果我们要输出前三个元素,那就是list[0: 3]。
如果第一个索引我们不写,就默认从第一个元素开始;如果第二个索引我们不写,就默认到最后一个元素。
4.2遍历切片
如果要遍历列表中的部分元素,我们可以在for循环中将列表进行切片。
4.3复制列表
当我们需要将一个列表复制到另一个列表的时候,我们就需要用到复制列表。
我们有两种方法复制列表,我们来比较一下:
(1)要复制列表,我们可以创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。这种方法是真正意义上的复制,因为切片会返回一个新的列表,也就是说用这种方法复制的列表是完全独立的列表。
我们可以测试一下这个结论:
(2)第二种方法是我们直接将list1赋值给list2:list2 = list1。
但是这种方法不是真正意义上的复制,list2列表不是完全独立的,改变list1时list2同样会发生改变。
原因就是这种方法相当于给这个列表贴上了list2的标签,list1和list2都指向这个列表,所以它们是同一个列表。
综上所述,列表的复制我们一般推荐第二种方法!
5.元组
元组和列表非常相似,只不过元组的中的值不能修改,而列表可以。因此可以把不能被修改的值放入元组中。
5.1定义元组
元组的定义和列表相似,只不过元组是用圆括号()。
5.2遍历元组
和列表一样,元组也可以用for循环进行遍历。
5.3修改元组变量
虽然我们不能修改元组的元素,但是可以给存储元组的变量赋值。因此,如果要修改元组,可重新定义整个元组。