一、列表的加法和乘法
-
加法
-
列表的加法相当于合并列表,把两个或多个列表中的所有元素放到一个新的列表中。
-
代码:
arr0 = [1,2,3] arr1 = [4,5,6] arr2 = arr0 + arr1 print(arr2)
-
运行结果:
-
-
乘法
-
这里的乘法指的是列表数据与整形数据的乘法,运算结果也是一个列表。
-
代码:
arr0 = [1,2,3] print(arr0 * 2)
-
运行结果:
-
二、末尾添加元素
-
方法:append()
-
方法描述
- 在列表的末尾添加一条数据。
-
语法
-
list.addend(item)
-
参数:item - 新元素
-
代码:
arr = [0,1,2] arr.append(3) print(arr)
-
运行结果:
-
三、指定位置添加元素
-
方法:insert()
-
方法描述
- insert() 方法用于给列表的指定位置添加元素。
- 若指定位置后面还有其他元素,在新元素添加进来后,指定位置后面的元素依次向后排序。
- 若指定位置下标值大于等于列表长度,insert() 方法与 append() 方法相同,也是在列表的末尾添加一条数据。
-
语法:
-
list.insert(index,item)
-
参数:
- index: 新元素的位置。
- item:添加的新元素。
-
代码:
arr = [0,1,2] arr.insert(3,3) print(arr)
-
运行结果:
-
四、统计元素出现的次数
-
方法:count()
-
方法描述
- 通过 count() 可以返回某个元素在列表中出现的次数。
- 若查询的元素不在列表中,则方法返回 0。
-
语法
-
list.count(item)
-
参数:item - 查找的元素
-
代码:
arr = [0,1,1,0,2,3,0,1,2] print(arr.count(0)) print(arr.count(4))
-
运行结果:
-
五、删除元素
-
方法:remove()
-
方法描述:
- 删除列表中的某个元素。
- 若删除的元素不在列表中,直接报错。
- 若删除的元素在列表中出现多次,那么 remove() 方法只删除第一次出现的元素。
-
语法:
-
list.remove(item)
-
参数:item - 要删除的元素
-
代码:
arr = [1,2,3,4,3,2,1] arr.remove(1) print(arr)
-
运行结果:
-
六、反转
-
方法:reverse()
-
方法描述:
- 对当前列表的数据进行反转。
-
语法:
-
list.reverse()
-
参数:无
-
代码:
arr = [0,1,2,3,4,5] arr.reverse() print(arr)
-
运行结果:
-
七、规律排序
-
方法:sort()
-
方法描述
- 对当前列表按照一定规律进行排序。
- sort() 只支持数字列表(数组)和字符列表,其他数据类型的列表会报错。
- 使用 sort() 时,要保证列表中的数据类型一致。
-
语法
-
list.sort(key=None,reverse=True)
-
参数:
- key: 参数比较
- reverse: 排序方式,True-降序,False-升序(默认)
-
代码
arr = [3,2,4,5,1,0,1] arr.sort() print(arr)
-
运行结果
-
八、清空
-
方法:clear()
-
方法描述
- 清空列表中所有数据。
-
语法
-
list.clear()
-
参数:无
-
代码:
arr = [3,2,4,5,1,0,1] arr.clear() print(arr)
-
运行结果:
-
九、拷贝
-
方法:copy()
-
方法描述
- 将当前列表复制一份,得到一个新的列表,两个列表内容相同但内存地址不同。
-
语法
-
list.copy()
-
参数:无
-
代码:
arr = [0,1,2,3,4,5] new_arr = arr.copy() arr.insert(0,-1) print(arr) print(new_arr)
-
运行结果:
-
-
深拷贝与浅拷贝
-
浅拷贝:只能对数据结构的第一层数据进行拷贝,更深层的数据无法拷贝。
-
上面的 copy() 方法就属于浅拷贝,原因请看下面代码
arr0 = [[0,1,2],[3,4,5]] arr1 = arr0.copy() arr0[0].insert(0,-1) print(arr0) print(arr1)
-
不难看出,虽然 arr1 是通过拷贝 arr0 得到的,但当 arr0 的数据发生变化时,arr1 也随着发生了变化,所以,copy() 方法是浅拷贝。
-
深拷贝:不止对数据结构的第一层数据进行拷贝,会进行更深层的拷贝,这样无论被拷贝的列表如何变化,拷贝后得到的列表是不会变的。
import copy arr0 = [[0,1,2],[3,4,5]] arr1 = copy.deepcopy(arr0) arr0[0].insert(0,-1) print(arr0) print(arr1)
-
可以看出,即便是修改了 arr0 里的数据,在输出 arr1 的时候是没有随之变化的。
-
十、倒入
-
方法:extend()
-
方法描述:
- 将其他列表或元组中的元素倒入到当前列表中。
-
语法:
-
list.extend(iterable)
-
参数:iterable - 列表或元组
-
代码:
arr0 = [0,1,2] arr1 = (3,4,5) arr0.extend(arr1) print(arr0)
-
运行结果:
-
十一、通过索引删除元素
-
方法:pop()
-
方法描述:
- 根据索引删除指定元素。
- 被删掉的元素会被 pop() 方法返回。
- 若传入的索引不存在,则会报错。
-
语法:
-
list.pop(index)
-
参数:index - 索引
-
代码:
arr = [0,1,2,3,4,5,6,7,8,9] item = arr.pop(4) print(item) print(arr)
-
运行结果:
-
十二、del 删除元素
-
语法: del list[index]
-
实践:
-
代码:
arr = [0,1,2,3,4,5,6,7,8,9] del arr[9] print(arr)
-
运行结果:
-