python容器之常用操作
- 互联网
- 2025-09-21 09:54:01

以列表list为例,这个list相当于c++中的数组或vector容器。那列表有哪些常用的操作呢?
获取列表的长度 list = [1,2,3,4,5] //获取列表的长度 length = len(list)注意这里与c++不同,c++中的容器都是有各自的定义,每种容器类型都实现了自己的获取本容器的长度的方法,这些方法名字一般都是为size(),但是python不一样,对于python中常用的容器他们一般都是利用python提供的内置函数len来获取列表长度的。python中容器一般不是通过size等方法获取容器其元素的个数。(如果是用户自己实现的类,不在讨论的范围之内)
获取列表中某个元素出现的次数 list = [1,2,2,3,4,5] #统计列表中2出现的次数 number = list.count(2)这里获取容器内某个元素出现的次数是通过count方法获取的。count方法是有参数的,参数为元素值。
列表中添加元素 在列表末尾添加一个元素:使用append方法。两个列表拼接成一个列表:直接相加即可在列表1中添加一个元素,但是元素是列表2:如果想要将列表2整天加入列表1,使用append方法即可;如果想要将列表2中的内容加入到列表1,而不是将整个列表2作为一个整体加入到列表1,使用extend方法。exntend会把列表打散,将列表中的元素一个一个的加入到列表1汇中;append方法则会将列表2作为一个整体加入到列表1中。在列表的插入中插入元素的方法:使用insert方法,insert方法要指定索引值和插入值;如果要频繁的在头部插入列表,请使用deque(频繁的在头部插入推荐使用deque)。具体使用方法请看下面的示例。示例如下:
list = [1,2,3,4,5] #向列表中添加一个元素,添加到末尾 list.append(6) print(f'list = {list}') #输出[1,2,3,4,5,6] #两个列表相加 list1 = [6,7,8] list = list + list1; print(f'list = {list}') #输出[1,2,3,4,5,6,7,8] #列表1中使用append方法添加list1 list1 = [6,7,8] list.append(list1) print(f'list = {list}') #输出[1,2,3,4,5,[6,7,8]] #列表1使用extend方法添加list1 list1 = [6,7,8] list.extend(list1) print(f'list = {list}') #输出[1,2,3,4,5,6,7,8] from collections import deque # 创建deque对象 numbers = deque([1, 2, 3]) # 使用appendleft添加元素 numbers.appendleft(0) print(list(numbers)) # 输出: [0, 1, 2, 3] # 使用extendleft添加多个元素(注意顺序会反转) numbers.extendleft([-2, -1]) print(list(numbers)) # 输出: [-1, -2, 0, 1, 2, 3] 删除列表中某个位置的元素删除列表中的某个元素,有几种情况:
知道具体的值,按值进行删除:使用remove方法知道要删除的索引位置,按位置进行删除:del知道要删除的索引位置,不但要删除这个值,还要返回要删除的值:pop方法(最常用的方法之一)删除列表中所有与某个元素相等的值:使用列表推导式和条件表达式批量删除请看下面的示例:
#pop方法删除元素,如果没有参数,默认删除最后一个元素 #如果有参数,则该参数代表要删除的索引值 list = [1,2,3,4,5] item = list.pop() print(f'item={item}') #item=5 print(f'list={list}') #list=[1, 2, 3, 4] second_item = list.pop(1) #删除列表中索引值为1的元素 print(f'second_item={second_item}') #item=2 print(f'list={list}') #list=[1, 3, 4] #remove方法按值删除 list = [1,2,3,4,5] list.remove(1) print(f'list={list}') #list=[2, 3, 4, 5] #安全删除 def safe_remove(list, item): try: list.remove(item) return True except ValueError: print(f"列表中不存在元素 {item}") return False #按索引位置删除 list = [1,2,3,4,5] del list[3] print(f'list={list}') #list=[1, 2, 3, 5] #批量式删除 list = [1,2,2,2,2,2,3,4,5] list = [value for value in list if value!=2] #列表推导式 print(f'list={list}') #list=list=[1, 3, 4, 5] 获取列表的一部分数据在python中如果要对指向获取列表的一部分数据,python提供了一种新的形式,即索引和切片,通过这样的方式来获取指定区域的数据。索引值与c++中的一样都是从0开始的,切片需要注意的是左闭右开原则,即包含切片左侧的索引,但是不包括索引右侧的索引。注意切片是可以包含步长的。索引的形式如下:
list左索引值:右索引值]------>左闭右开,即这个切片包括左索引对应的值,但是不包括右索引值
list[:]----->这种表示列表中的所有值
list[:索引值]-------->取这个索引值之前的所有的元素组成的列表
list[索引值:]--------->取从这个元素开始到列表末尾的所有元素
list[索引值:索引值:步长]-------->从左索引值开始到右索引值的前一个元素,每隔步长取元素
list = [1,2,3,4,5,6] #通过切片的方式获取列表的部分 输出为[2,3,4,5,6] print(f'list[1:]={list[1:]}') #通过切片的方式获取列表的部分 输出为[2,3] print(f'list[1:]={list[1:3]}') #通过切片的方式获取列表的部分 输出为[1,2,3] print(f'list[1:]={list[:3]}') #通过切片的方式获取列表的部分 输出为[1,2,3,4,5,6] print(f'list[1:]={list[:]}') #通过切片的方式获取列表的部分 输出为[1,3,5] print(f'list[1:]={list[::2]}') 注意事项 列表中的元素数据元素可以不相同python容器之常用操作由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“python容器之常用操作”