
2.1.3 列表的编辑
列表是可变数据结构,可以更改元素的值,可以向列表中添加元素,从列表中删除元素、修改元素,以及进行排序等。这些方法都是列表类自身的方法,其使用形式是list.method(x),其中list是列表变量,method是方法,x是数据或参数,小数点“.”表示使用列表类自身的特征。
1.向列表中添加元素
通过索引找到列表中的元素后,可以直接对列表元素的值进行更改。可以使用列表的append(x)方法在列表的末尾增加元素,用extend(iterable)方法将一个列表、元组等增加到列表的末尾,用insert(i,x)方法在列表的i位置插入元素等。

下面的代码用append()方法生成新的列表。

2.从序列中删除元素
可以使用列表的remove(x)方法从列表中移除第1个值是x的元素,如果列表中不存在数据为x的元素,则会抛出ValueError异常。在使用该方法之前可以用if分支和isin逻辑判断语句判断x是否在列表中。用pop()方法可以移除列表的最后一个元素,并返回这个元素;用pop(index)方法可以移除索引值为index的元素,并返回这个元素;用clear()方法可以移除列表的所有元素。

3.列表的查询
用count(x)方法可以查询列表中出现x的次数,用index(x)方法可以输出第1次等于x的元素的索引,用index(x,[start],[end])方法可以输出从索引值start开始到索引值为end之间第1次等于x的元素的索引。Python的内置函数len(sequence)可以输出列表的长度。

使用Python的内置函数sum()、max()和min()可以输出列表中元素的和、最大值和最小值。

4.列表的排序和反转
用列表的sort(reverse=False)和sort(reverse=True)方法可以对列表的数据按照升序和降序重新排列,用列表的reverse()方法可以反转列表中元素的顺序。

采用Python的内置函数sorted(sequence,reverse=True/False)和reversed(sequence)也可对列表进行排序和反转,这两个函数返回新列表,原列表不变。

5.列表的复制
要产生一个与已有列表完全相同的列表,不要使用list2=list1,因为在改变列表list1中的数据时,list2中的数据也会跟着改变,而应使用列表的复制方法copy()。
