列表类型(list)
1. 列表介绍
列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作。
1.1 定义方式
1 | # 定义:[]内可以有多个任意类型的值,逗号分隔 |
★2. 常用列表方法
2.1 list[index] 访问列表中的值
语法说明
使用下标索引来访问列表中的值,下标从0开始计数
1 | # 通过下标访问列表中的值,下标从0开始计数 |
2.2 list[index_start:index_end] 切片:取多个元素
语法说明
使用方括号的形式截取字符
1 | # 通过[]索引截取列表中的元素 |
2.3 append() 列表追加
语法说明
list.append(obj)
参数说明
- obj – 添加到列表末尾的对象。
返回值
该方法无返回值,但是会修改原来的列表。
1 | # append()对列表进行追加原色 |
2.4 insert() 列表元素插入
语法说明
list.insert(index, obj)
参数说明
- index – 对象obj需要插入的索引位置。
- obj – 要插入列表中的对象。
返回值
该方法没有返回值,但会在列表指定位置插入对象。
1 | # insert() 将指定对象插入列表的指定位置。 |
2.5 列表修改
语法说明
list[index] = new_obj
参数说明
- index – 对象new_obj需要写入的索引位置。
返回值
该方法没有返回值,但会在列表指定位置更新对象。
1 | # 将新对象赋值到指定位置 |
2.6 列表元素删除
语法说明
del list[index]
list.remove(obj)
list.pop()
参数说明
- index – 列表的索引位置。
- obj – 列表中的对象。
返回值
以上三种方法没有返回值,但会更新列表对元素对象,将指定元素删除
2.6.1 del list[index]
1
2
3
4
5
6# del list[index] 删除列表指定位置的元素
"Google", "Facebook", "Baidu", "Taobao"] l=[
del l[1]
l
["Google","Baidu", "Taobao"]2.6.2 list.remove(obj)
1
2
3
4
5
6# list.remove(obj) 删除列表指定对象
"Google", "Facebook", "Baidu", "Taobao"] l=[
"Facebook") l.remove(
l
["Google","Baidu", "Taobao"]2.6.3 list.pop()
1
2
3
4
5
6# list.pop() 删除列表中最后一个对象
"Google", "Facebook", "Baidu", "Taobao"] l=[
l.pop()
l
["Google", "Facebook", "Baidu"]
2.7 extend() 列表扩展元素
语法说明
list.extend(seq)
参数说明
- seq – 元素列表。
返回值
该方法没有返回值,但会在已存在的列表中添加新的列表内容。
1 | # extend()用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。 |
2.8 count() 统计列表中某个元素出现的个数
语法说明
list.count(obj)
参数说明
- obj – 列表中统计的对象。
返回值
返回元素在列表中出现的次数。
1 | # count()用于统计某个元素在列表中出现的次数。 |
2.9 sort() 列表排序
语法说明
list.sort([func])
参数说明
- func – 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
返回值
该方法没有返回值,但是会对列表的对象进行排序。
1 | # sort()用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。 |
2.10 reverse() 列表翻转
语法说明
list.reverse()
返回值
该方法没有返回值,但是会对列表的元素进行反向排序。
1 | # reverse()用于反向列表中元素。 |
2.11 index() 获取列表指定元素下标
语法说明
list.index(obj)
参数说明
- obj – 查找的对象。
返回值
该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。
1 | # index()用于从列表中找出某个值第一个匹配项的索引位置。 |
☆2.12 copy() 浅拷贝 / copy.deepcopy() 深拷贝
语法说明
copy()
list.copy()
copy.deepcopy()
copy.deepcopy(origin_list)
参数说明
- origin_list表示深拷贝所拷贝的原始列表
返回值
返回复制后的新列表。
2.12.1 copy() 浅拷贝
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# copy()用于复制列表,类似于 a[:]
# 将l1列表拷贝至l2列表中,l1与l2两列表元素相同
"Google", "Facebook", "Baidu",["Apple","Banana","Peach"]] l1=[
l2 = l1.copy()
l2
['Google', 'Facebook', 'Baidu', ['Apple', 'Banana', 'Peach']]
# 注意,上述例子中如果在l1原始列表进行更改,l2列表会随之改变,此即为浅拷贝
"Google", "Facebook", "Baidu",["Apple","Banana","Peach"]] l1=[
l2 = l1.copy()
l2
['Google', 'Facebook', 'Baidu', ['Apple', 'Banana', 'Peach']]
3].append("NewComer") l1[
l1
['Google', 'Facebook', 'Baidu', ['Apple', 'Banana', 'Peach', 'NewComer']]
l2
['Google', 'Facebook', 'Baidu', ['Apple', 'Banana', 'Peach', 'NewComer']]2.12.2 copy.deepcopy() 深拷贝
1
2
3
4
5
6
7
8
9
10
11
12
13# copy.deepcopy()深拷贝,copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。
# 与浅拷贝不同,深拷贝的情况下,如果在l1原始列表进行更改,l2列表不会随之改变,此即为深拷贝
import copy
"Google", "Facebook", "Baidu",["Apple","Banana","Peach"]] l1=[
l2 = copy.deepcopy(l1)
l2
['Google', 'Facebook', 'Baidu', ['Apple', 'Banana', 'Peach']]
3].append("NewComer") l1[
l1
['Google', 'Facebook', 'Baidu', ['Apple', 'Banana', 'Peach', 'NewComer']]
l2
['Google', 'Facebook', 'Baidu', ['Apple', 'Banana', 'Peach']]2.12.3 深浅拷贝原理解析