python中列表相关操作/访问列表/列表更新/删除/常用的List函数方法

本文介绍了Python中列表的基本操作,包括访问列表元素、更新列表(如append、insert、extend)、删除元素(del、pop、remove、clear)以及其他常用函数方法。详细讲解了各种操作的用法和注意事项,例如sort()函数的适用条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表/List

列表是一组使用方括号括起来的数据,元素中间使用逗号进行分隔,可以存放任意类型的对象,例如:list = [1, 'abc', [1, 2, 3], (1, 2, 3), {"A": "apple"}]是一个可变对象,所以可以进行增、删、改、切片等操作;

访问列表

访问列表中的元素同字符串类似,是根据下标(索引)进行访问,索引从左向右是正索引从0开始,依次1,2,3…等类推;索引从右向左是从-1开始的,依次是-2,-3,-4…类推,切片之后取到的数据仍是一个列表。
访问元素:list[下标值]
列表切片:list[起始值:终止值:步长]
(步长不写的时候默认为1)

list1 = [1, 6, 8, 4, 10, 0, 1, 22]
print(list1[2])  # 打印列表下标为2的元素
print(list1[-1])  # 打印列表下标-1的元素
print(list1[:3])  # 打印列表从0-2下标的元素值,结果仍是列表
print(list1[2:5])  # 打印列表从2-4的元素值,切片取值范围是左开右闭(即不包含右边的第5个下标)
print(list1[::2])  # 打印从头到尾,步长为2的元素值
print(list1[::-1])  # 步长为-1从右开始打印元素,相当于倒叙打印列表
print(list1[5:2:-1])  # [0, 10, 4]
# 步长为-1,从右往左取值,又因为是按正数取得,所以取得是下标2-5之间的元素,又因为左开右闭原则,所以取不到下标2的数据 ,可以渠道下标为5的数据
print(list1[5::-1])  # [0, 10, 4, 8, 6, 1]
# 步长-1,倒序输出,取下标0-5的元素值,包含第5位元素
print(list1[:4:-1])  # [22, 1, 0]
# 步长-1,倒序输出,取下标4到最后的元素值,左开右闭原则,所以不能取下标为4的元素值
print(list1[:-3:-1])
# 步长-1,倒序输出,取下标-3到最后的值,左开右闭原则,所以下标-3的值取不到
print(list1[-3:])  # 打印下标-3到最后的值

打印结果:

8
22
[1, 6, 8]
[8, 4, 10]
[1, 8, 10, 1]
[22, 1, 0, 10, 4, 8, 6, 1]
[0, 10, 4]
[0, 10, 4, 8, 6, 1]
[22, 1, 0]
[22, 1]
[0, 1, 22]
更新列表元素

在列表中新增数据的函数有3种:
List.append(obj) 该函数无返回值,更新原列表(obj添加到列表末尾的对象);
List.insert(index,obj) 该函数无返回值,指定位置插入数值,如果不指定位置会报错 TypeError: insert expected 2 arguments, got 1(插入预期的2个参数,得到1)
List.extend(seq) 该函数无返回值,在列表末尾一次性最佳另一个序列中的多个值,seq–可以是列表、元组、集合、字典等,如果是字典,则仅把键当作元组依次添加到列表的末尾,如果参数为空则报错TypeError: list.extend() takes exactly one argument (0 given)(List.extend()只接受一个参数(给定0) )

list1 = [1, 6, 8, 4, 10, 0, 1, 22]
list2 = ['a', 'b', 'c']
dict1 = {'app':'apple', 'ble':'blue'}
list1.append(77)  # 添加77到列表的末尾
print(list1.append(55))  # None无返回值
list1.insert(55, 44)  # 添加4到下标55的位置
list1.extend(list2)  # 把列表list2拼接到list1中
list1.extend(dict1)  # extend()添加的是列表只会取到键当作元素放在列表中

print(list1)  # 打印结果:[1, 6, 8, 4, 10, 0, 1, 22, 77, 44, 'a', 'b', 'c', 'app', 'ble']
删除列表元素

在列表中删除元素的函数有4种:
del List[index] 删除列表种指定下标的元素,更新列表,
不指定位置,则报错SyntaxError: invalid syntax(SyntaxError:无效的语法)
元素下标超出列表最大值,则报错IndexError: list assignment index out of range(IndexError:列表赋值索引超出范围 )
del list[start : end] del也可以删除中间一段连续的元素,start表示开始下标,end表示结束下标,会删除从start到end之间的元素,但是不包括end位置的元素,原理类似字符串和列表的切片取值,左开右闭;
List.pop([index = -1]) 有返回值,删除列表种的一个元素,默认最后一个元素,index不能超过列表总长度,否则报错:IndexError: pop index out of range(pop索引超出范围);
List.remove(obj) 无返回值,移除列表种某一个值的第一个匹配项;
当列表中没有obj这个元素的时候,则报错:ValueError: list.remove(x): x not in list( x不在列表中)
使用该函数不填写obj的时候,报错:TypeError: list.remove() takes exactly one argument (0 given)(list.remove()只接受一个参数(0给出) )
List.clear() 无返回值,清空整个列表中的元素,即清空列表
总结: 列表删除元素有4中方法,分为三个场景:

  • 根据元素位置索引删除元素,del 和pop()方法;
  • 根据元素本身删除,remove()方法;
  • 删除列表全部元素。clear()方法;
# 列表的删除
# 注:以下代码的打印结果,都是打印单行,注释掉其他行的结果
list3 = [1, 6, 8, 4, 10, 0, 1, 22, 77, 44, 'a', 'b', 'c', 'app', 'ble']

del list3[0]  # [6, 8, 4, 10, 0, 1, 22, 77, 44, 'a', 'b', 'c', 'app', 'ble']
# del list3[3:5]  #[1, 6, 8, 0, 1, 22, 77, 44, 'a', 'b', 'c', 'app', 'ble']
# del list3[90]  # IndexError: list assignment index out of range
# print(list3.pop(3))  # 返回值:4
# print(list3.pop(66))  # IndexError: pop index out of range
# print(list3.remove(1))  # None
# list3.remove()  # list3 = [6, 8, 4, 10, 0, 1, 22, 77, 44, 'a', 'b', 'c', 'app', 'ble']
# list3.clear()  # []  清空列表
print(list3.clear())  # 无返回值
print(list3)

其他列表函数方法

注意:sort()函数方法不是和 int 和 str 类型的比较,否则会报错;

list1 = [1, 6, 8, 4, 10, 0, 1, 22]
list2 = ['a', 'b', 'c']
print("list1列表的元素长度:", len(list1))  # 打印列表元素个数
print("list1中最大的元素是:", max(list1))  # 返回列表最大值
print("list1中最小的元素是:", min(list1))   # 返回列表最小值
print("list2中最大的元素是:", max(list2))
print("list1中1出现的次数", list1.count(1))  # 同级列表中某个元素出现的次数
print("list1中1第一次出现的索引的位置:", list1.index(1))  # 在列表中找出某个元素第一个匹配的索引的位置
print("list1进行排序后:", list1.sort(reverse=False))  # 无返回值,对原列表进行排序,reverse指定排序规则,True降序,False升序(默认)
# print("list1的反向排序是:", list1.reverse())  # 列表反向排序
print(list1)

打印结果:

list1列表的元素长度: 8
list1中最大的元素是: 22
list1中最小的元素是: 0
list2中最大的元素是: c
list1中1出现的次数 2
list1中1第一次出现的索引的位置: 0
list1进行排序后: None
[0, 1, 1, 4, 6, 8, 10, 22]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值