Python列表遍历的5种常用方法及文件遍历技巧

小林子
小林子
发布时间:2026-10-14| 2人浏览过
原创

本文总结了Python中遍历列表的五种主要方法,包括基础的for循环、while循环、索引访问、iter()迭代器以及enumerate()枚举器,并详细解析了各方法的代码示例与运行结果。此外,文章还扩展介绍了在验证码识别等场景下,利用os模块进行文件遍历的三种实现方式,涵盖listdir、path.walk及os.walk的使用差异与注意事项。

在Python编程中,遍历列表是常见操作,主要包含以下几种实现方式:

一、使用for循环进行遍历


lists = ["m1", 1900, "m2", 2000]

for item in lists:

print(item)

lists = ["m1", 1900, "m2", 2000]

for item in lists:

item = 0;

print(lists)

运行结果:


['m1', 1900, 'm2', 2000]

二、使用while循环进行遍历


lists = ["m1", 1900, "m2", 2000]

count = 0

while count < len(lists):

print(lists[count])

  count = count + 1

三、通过索引进行遍历


for index in range(len(lists)):

  print(lists[index])

四、使用iter()函数进行遍历


for val in iter(lists):

  print(val)

五、使用enumerate()方法进行遍历


for i, val in enumerate(lists):

  print(i, val)

运行结果:


0 m1

1 1900

2 m2

3 2000

若需从非0起始的下标开始遍历元素,可采用如下方法实现:


for i, el in enumerate(lists, 1):

  print(i, el)

运行结果:


1 m1

2 1900

3 m2

4 2000

扩展阅读

Python中遍历文件的方法

在验证码识别场景中,系统需将待识别图片与库中图片进行比对,以找到最相似的图片。通常做法是使用与图片内容一致的字符命名文件,进而读取文件名作为验证码。基于网络资料总结,以下是三种文件遍历的实现方式:前两种方法较为相似,而第三种方法存在显著差异。

首先需要获取文件夹路径。本文示例针对特定文件夹下的文件进行遍历,并需去除文件后缀。注:num为示例中创建的文件夹名称。


import os # 需要用到os包

s = os.sep # s区分在linux或windows系统下的分割符"/"或"\"
root = "C:\Users\XXX\Desktop" + s + "num" + s # 文件路径

mode = [] # 用mode进行去掉后缀的文件名存储。

# 遍历文件的第一种方式:

sname = os.listdir(root) # 获取文件夹下文件或文件夹的名称,获取到的sname的格式为('1.jpg')。

for f in sname:
  fname = os.path.splitext(f) # 对f中的文件名进行分割,分割后显示为['1','jpg']
  mode.append(fname[0]) # fname[0],取序列中的第一值,即['1']


# 遍历文件第二种方法(python2支持,python3不支持)

def func(args, dire, fis):
  for f in fis:
    fname = os.path.splitext(f) # splitext分割文件名和文件后缀
    mode.append(fname[0])
os.path.walk(root, func, ()) # 通过调用函数进行文件的遍历,这种方法只能获取到文件夹下的文件名,不能获取到子文件夹下的其他内容


# 使用os.walk-遍历文件的第三种方法:

for rt, dirs, files in os.walk(root): # 通过os.walk进行文件遍历,可以获得文件夹下子文件内的内容,dirs为递归查出的所有文件夹,files为递归查出的所有文件
  for f in files:
    fname = os.path.splitext(f)
    mode.append(fname[0])

相关标签:

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

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 算法库。