Python列表常见操作与经典实例详解

Ada
Ada
发布时间:2026-10-14| 4人浏览过
原创

本文详细解析Python中列表的常见操作,涵盖创建、增删改查、排序、遍历及复制等核心功能。通过append、insert、pop、sort等方法的经典实例,展示如何高效处理列表数据,并提醒原地修改方法返回None的注意事项,帮助开发者掌握Python列表的高级用法。

本文通过具体实例,深入讲解Python基础中列表的常见操作技巧,旨在为读者提供实用的参考与学习素材。

Python中的列表操作

列表是Python中使用频率极高的数据类型,几乎无可替代。

列表本质上是一组有序项目的集合,属于可变数据类型,支持增删改查操作。它可以包含任意类型的数据,甚至嵌套其他列表,实现灵活的组合。在语法上,列表由方括号“[]”包围,内部元素以逗号“,”分隔,并可通过索引序号访问其中的成员。

创建列表的方式

#创建一个含有元素1,2,4,8,16,32的列表
#方法1
L = [1, 2, 4, 8, 16, 32]
#方法2
L = []
for x in range(0, 6):
  L.append(2**x)
#方法3
L = [2**x for x in range(0, 6)]
列表操作包含以下内置函数:

1、cmp(list1, list2):用于比较两个列表的元素大小。 2、len(list):返回列表中包含的元素个数。 3、max(list):返回列表中的最大元素值。 4、min(list):返回列表中的最小元素值。 5、list(seq):将序列(如元组)转换为列表对象。

列表操作包含以下常用方法:

1、list.append(obj):在列表末尾添加一个新的对象。 2、list.count(obj):统计指定元素在列表中出现的次数。 3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值,从而扩展原列表。 4、list.index(obj):查找列表中第一个匹配值的索引位置。 5、list.insert(index, obj):将对象插入到指定的索引位置。 6、list.pop(obj=list[-1]):移除并返回列表中的一个元素,默认移除最后一个元素。 7、list.remove(obj):移除列表中第一个匹配指定值的元素。 8、list.reverse():将列表中的元素顺序反向排列。 9、list.sort([func]):对原列表进行原地排序。

1.增加元素

A.新加入一个元素append

使用append方法添加元素。该方法在原列表的末尾追加一个item,该item的数据类型可以是任意类型。


l = [1, 2, 3]
l.append('hello')  #得到 [1, 2, 3, 'hello']
l.append(['hello'])  #得到 [1, 2, 3, 'hello', ['hello']]

B.插入一个元素insert


l1 = [1, 2, 3]
l1.insert(1,9)  #[1, 9, 2, 3]

C.两个列表相加


#第一种
l1 = [1, 2, 3]
l3 = l1 + [4, 5, 6] #这种方式,l1不变,二者返回新的列表,当列表很长时,会消耗大量内存
#第二种
l1.extend([4, 5, 6]) #直接扩增l1
#相当于
l1 += [4,5,6]
2.删除元素

A.按item的索引或切片删除


l1 = [1, 2, 3, 4, 5, 6]
del l1[0]  #得到[2, 3, 4, 5, 6]
del l1[0:2] #得到[4, 5, 6]

B.按item的值进行删除


l1 = [1,2,3,1,2]
l1.remove(1) #得到[2,3,1,2]

需要注意的是,若使用remove删除的值在列表中不存在,程序将抛出ValueError错误。

C.删除某个位置并返回该位置值


l1 = [1, 2, 3, 4, 5]
a = l1.pop(1)  #a=2
b = l1.pop()  #a=5
3.修改元素

A.某个元素


l1 = [1, 2, 3, 4]
l1[0] = 0  #[0,2,3,4]

B.某一段元素


l1= [1,2,3,4]
l1[0:2] = [7,8,9] #[7,8,9,3,4]

l1[:] = []  #清空了

C.索引


l1 = [1,2,3,4,5]
l1[0] #1
l1[-1] #5,负数的索引从尾部开始计数,最后一个元素为-1

D.切片


l1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
l1[0:2]  #[1, 2],  取区间[i,j) ,左闭右开
l1[:2]   #同上,可省略第一位
l1[2:]   #[3, 4, 5, 6, 7, 8, 9, 10, 11]
l1[2:-1]  #[3, 4, 5, 6, 7, 8, 9, 10]
l1[:]    #同l1,相当于复制一份

l1[::2]  #步长2,[1, 3, 5, 7, 9, 11]
l1[0:7:2] #[1, 3, 5, 7]
l1[7:0:-2] #[8, 6, 4, 2]  注意步长为负、理解起来相当于从7到1,倒序步长2
4.排序

A.原地排list.sort()


l1 = [5,3,2,1,4,6]
l1.sort()  #得到[1,2,3,4,5,6]  默认升序

sort可接受参数

cmp:比较函数,接受两个参数,小于时返回负数,大于返回正数,相等返回0。 key:指定用于排序的键。 reverse:指定是否进行反序排列。

列表的比较操作隐式调用cmp方法,其比较规则是逐个扫描元素进行对比:若能比较则比较,若相等则扫描下一个元素,若不相等则返回结果;若两个元素类型无法比较,则比较它们的id()值。若一直相等直到一个列表扫描结束,则返回较长的列表为较大值。


>>> l1 = [(1,99),(3,97),(2,98),(4,96)]
>>> l1.sort(key=lambda x: x[1])
>>> l1
[(4, 96), (3, 97), (2, 98), (1, 99)]
>>> l1.sort(key=lambda x: x[1], reverse=True)
>>> l1
[(1, 99), (2, 98), (3, 97), (4, 96)]

B.sorted函数 sorted(l1) #返回l1的有序序列,但l1本身保持不变


sorted(l,key=str.lower,reverse=True)

C.反序


l1.reverse() #l1反序
5.查找和统计

A.包含判断in ,not in


l1 = [1, 2, 3, 4]
1 in l1 #True
1 not in l1 #False

B.查询位置索引index


l1 = [1, 2, 3, 4]
l1.index(1)  #0
>>> l1.index(5)  #特别注意,当值不存在于列表,用index将抛ValueError

Traceback (most recent call last):
 File "<pyshell#44>", line 1, in <module>
  l1.index(5)
ValueError: 5 is not in list

C.统计一个元素的出现次数


l1 = [1, 2, 3, 4, 1]
l1.count(1)  #2
6.遍历列表

A.直接


l1 = [1, 2, 3, 4, 5]
for i in l1:
   print (i)

B.需要索引位置


l1 = [1, 2, 3, 4, 5]
for index,value in enumerate(l1):
   print (index,value)

C.其他操作


len(l)  #列表长度
l*3 重复
l1 = [1, 2]
l1*3  #[1,2,1,2,1,2]

D.清空列表


l1 = []
l1[:] = []
del l1[:]

E.复制列表


l2 = l1[:]

注意:在操作list时,如果是涉及原地修改的操作,例如append,insert等,返回值是None 要防止出现这种语法 l1 = l1.append(‘a') ,如果这样,你将得到None…….

更多关于Python相关内容可查看本站专题:《Python列表(list)操作技巧总结》、《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。