文章目录
- 一、什么是 List 列表
- 1.1 创建 List 列表的方式
- 1.2 列表的新增函数方法
- 1.3 列表的删除函数方法
- 1.4 修改列表数据的方法
- 1.5 列表的查询函数方法
- 1.6 列表的排序和反序
- 1.7 列表的复制
一、什么是 List 列表
-
List 列表:该数据类型定义的变量可以理解为是一个数据的集合,可以有序的存储一些数据,并且没有数据类型的要求,可以多种数据类型同时存储。(相当于Java 中的数组)
1.1 创建 List 列表的方式
-
直接创建
- 语法格式
-
a = [1]b = [a,1,'abc',True,1.23]print(b)
- 运行结果:
-
- 语法格式
-
函数创建
- list(): 创建一个空列表
- range(start, stop[, step]): 搭配 list() 使用,在创建列表时向列表中添加内容
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
- 代码示例:
-
#list(可迭代对象)a = list() # 创建一个空的列表对象print(a)print(list(range(10)))#只添加一个数字,默认为起始位置为0,此数字为终止位置print(list(range(0,10)))print(list(range(1, 11)))print(list(range(0, 30, 5)))# 步长为5print(list(range(0, -10, -1)))# 负数# 起始位置小于等于终止位置显示为空print(list(range(0)))print(list(range(1,0)))
- 运行结果:
- 运行结果:
-
- 代码示例:
- range(start, stop[, step]): 搭配 list() 使用,在创建列表时向列表中添加内容
- list(): 创建一个空列表
1.2 列表的新增函数方法
- append(x) 新增方法: 向列表中新增内容,原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使用
- 代码示例:
-
a = list() # 创建一个空的列表对象a.append(1)a.append(2)print(a)
- 运行结果
- 运行结果
-
- 代码示例:
-
extend() 合并方法: 将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象
-
注意:
需要的是一个可迭代对象
如何需要两个列表合并的时候那么推荐使用extend() 他不会去创建新的对象 -
代码示例:
-
a = list() # 创建一个空的列表对象a.append(1)a.append(2)print(a)b = ["a","b","c"]b.extend(a)print(b)
- 运行结果
-
-
-
insert(index,object): 根据下标在指定位置插入数据。index: 表示下标,在那个位置插入数据。object: 表示对象,具体插入那个数据 。
-
注意:
这样会让插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove()、pop()、del(),它们在删除非尾部元素时也会发生操作位置后面元素的移动- 代码示例:
-
b = ["a","b","c"]b.insert(1,"123456")print(b)
- 运行结果
- 运行结果
-
- 代码示例:
-
1.3 列表的删除函数方法
-
del 关键字: 删除列表指定位置的元素或者直接删除变量。不建议使用
- 代码示例:
-
a=[10,20,30]del a[1] # 也可以使用切片删除print(a) # 运行结果:[10, 30]del aprint(a) # 运行结果:因为列表被删除,打印报错
-
- 代码示例:
-
pop(index)方法: 删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素
- 代码示例:
-
a=[10,20,30]print(a.pop(1))# 运行结果: 20
-
- 代码示例:
- remove(obj)方法: 删除首次出现的指定元素,若不存在该元素抛出异常
- 代码示例:
-
a = [10,20,30,66]a.remove(10)print(a)# 运行结果 :[20, 30, 66]
-
- 代码示例:
- clear()方法: 清空列表
- 代码示例:
-
a = [10,20,30,66]a.clear()print(a)# 运行结果 :[]
-
- 代码示例:
1.4 修改列表数据的方法
- list[index] = value: 直接通过下标修改
- 代码示例:
-
a = [10,20,30,66]a[1] = 50print(a)# 运行结果 :[10, 50, 30, 66]
-
- 代码示例:
1.5 列表的查询函数方法
-
通过下标获取列表元素
-
可以通过索引直接访问元素,索引的区间在[0,列表长度-1]这个范围,超过这个范围则会抛出异常
-
a = list() # 创建一个空的列表对象a = list(range(10))print(a[5])print(a)
- 运行结果
-
-
-
获得指定元素在列表中首次出现的索引
- index(value,[start,[end]]): value为传入参数,start和end指定了搜索的范围,如果列表中不存在该参数,或者指定的范围没有改参数,那么报错
-
a = ["a","b","c","d","e"]print(a.index("a"))print(a.index("a",1,2))
- 运行结果
-
- index(value,[start,[end]]): value为传入参数,start和end指定了搜索的范围,如果列表中不存在该参数,或者指定的范围没有改参数,那么报错
-
count(value): 计算value在列表中出现的次数,value为传入参数
-
a = [10,20,30,66,10]print(a.count(10))# 运行结果: 2
-
-
max(list): 计算出列表中的最大值
-
a = [10,20,30,66,10]print(max(a))# 运行结果 : 66
-
-
min(list): 计算出列表中的最小值
-
a = [10,20,30,66,10]print(min(a))# 运行结果 : 10
-
-
sum(list): 计算列表中全部数据的总和,需要是数字类型
-
a = [10,20,30,66,10]print(min(a))# 运行结果: 136
-
1.6 列表的排序和反序
- sort(): 可以直接对列表进行从小到大的排序,直接对原有的列表进行排序
- 代码示例:
-
a = [10,20,30,66,10]a.sort()print(a)# 运行结果 :[10, 10, 20, 30, 66]
-
- 代码示例:
- sorted(list)内置函数: 不会改变原有的列表的,会生成一个新的列表
- 代码示例:
-
a = [10,20,30,66,10]print(sorted(a))# 运行结果 :[10, 10, 20, 30, 66]
-
- 代码示例:
- reverse()反转函数: 将列表中的内容从后向前展示
- 代码示例:
-
a = [20,30,66,10]a.reverse()print(a)# 运行结果:[10, 66, 30, 20]
-
- 代码示例:
- reversed()返回迭代器: 内置函数,reversed()也支持进行逆序排列,与列表对象reverse()方法不同的是,内置函数reversed()
-
不对原列表做任何修改,只是返回一个逆序排列的迭代器对象
- 代码示例:
-
a = [20,10,30,40]c = reversed(a)print(c)print(list(c))print(c)print(list(c))
- 运行结果:
- 运行结果:
-
- 代码示例:
-
1.7 列表的复制
- copy(): 可以复制一个列表 这个新列表和原有的列表内容一样,但指向不同的内存空间
- 代码示例:
-
x = [100,200,300]#x 和 y 指向同一个内存空间 会相互影响y = x # 等号是内存地址的赋值b = x.copy()print(b)x[0] = 1print(y)
- 运行结果
- 运行结果
-
- 代码示例: