列表中有一些自己的操 作例如列表增加、列表修改、 列表删除。当列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担。但这个特点涉及列表元素的大量移动,效率较低。除非必要,一般只在列表的尾 部添加元素或删除元素,这会大大提高列表的操作效率。
1 列表的添加
append()方法 在列表的末尾追加一个新对象,使用 append()方法。 +运算符操作 +运算符操作,并不是真正的尾部添加元素,而是创建新的列表对象;将原列表的元素和新列表的元素依次复制到新的列表对象中。这样会涉及大量的复制操作,对于操作大量元素不建议使用。 extend()方法 将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。
insert()方法 使用 insert()方法可以将指定的元素插入到列表对象的任意制定位置。这样会让插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove()、pop()、del(),它们在删除非尾部元素时也会发生操作位置后面元素的移动。
2 列表的查找
通过索引直接访问元素 序列中的所有元素都是有索引的,编号从 0 开始递增,最大到列表的长度减 1。序列中 的所有元素都可以通过索引访问。 在上面的代码中,通过索引 0 和索引 2 分别获取列表中的第 1 个和第 3 个元素。 如果索引是 0 或正整数,那么 Python 语言会从列表的左侧第一个元素开始获取;如果索引是负数,那么 Python 语言会从列表的右侧第一个元素开始获取。序列最后一个元素的索引是-1,倒数第二个元素的索引是-2,以此类推。 index()获得指定元素在列表中首次出现的索引 index()可以获取指定元素首次出现的索引位置。语法是:
index(value,[start,[end]])
其中, start 和 end 指定了搜索的范围。
3 列表的修改
修改列表中的某一个元素,可以像使用数组一样对列表中的特定元素赋值,也就是使用 一对中括号指定元素在列表中的索引,然后使用赋值运算符(=)进行赋值。
4 列表的删除
del 删除 del 删除列表指定位置的元素。语法格式:
del 元素
pop 删除 pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。 remove 删除 删除首次出现的指定元素,若不存在该元素抛出异常。
5 列表的乘法
列表乘以一个数字 n 会生成新的列表,在新的列表中原来的列表将会被重复 n 次。
6 列表的长度、最大值和最小值
len、max 和 min 这三个函数用于返回列表中元素的数量、列表中最大值、列表中最小值。使用 max 和 min 函数要注意一点,就是列表中的每个元素值必须是可比较的。否则会抛出异常。例如,如果列表中同事包含整数和字符串类型的元素,那么使用 max、min 函数就会抛出异常。
7 列表的切片
切片操作是从列表 A 中 获取一个子列表 B。列表 A 可以称为父列表。从 A 中获取 B,需要指定 B 在 A 中的开始索引和结束索引,因此切片操作需要指定两个索引。对于列表的切片操作和字符串类似。切片是 Python 序列及其重要的操作,适用于列表、元组、字符串等等。切片的语法格式如下:
列表[起始偏移量 start : 终止偏移量 end [:步长 step]]
操作和说明 | 示例 | 结果 |
---|
[:] 提取整个列表 | [10,20,30][:] | [10,20,30] | [start:]从 start 索引开始到结尾 | [10,20,30][1:] | [20,30] | [:end]从头开始直到 end-1 | [10,20,30][:2] | [10,20] | [start:end]从 start 到 end-1 | [10,20,30,40][1:3] | [20,30] | [start:end :step]从 start 提取到 end-1,步长是 step | [10,20,30,40,50,60,70][1:6:2] | [20, 40, 60] |
典型操作(三个量为负数的情况)
示例 | 说明 | 结果 |
---|
[10,20,30,40,50,60,70][-3:] | 倒数三个 | [50,60,70] | 10,20,30,40,50,60,70][-5:-3] | 倒数第五个到倒数第三 个(包头不包尾) | [30,40] | [10,20,30,40,50,60,70][::-1] | 步长为负,从右到左反向提取 | [70, 60, 50, 40, 30, 20, 10] |
8 其它常用方法
方法 | 描述 |
---|
copy() | 用于赋值一个列表 | count() | 用于统计某个元素在列表中出现的次数 | reverse() | 用于将列表中的元素反向存放,调用该方法会改变原来的列表 | sort() | 用于对列表进行排序,调用该方法会改变原来的列表 | sorted() | 用于对列表排序,返回新列表,不对原列表做修改。 | clear() | 用于清空列表的内容 |
|