Python遍历列表4种写法_第1种最累第4种最爽

学了列表的增删改查、常用方法、内置函数,你已经能把列表玩出花了。但还有一种操作你没学过——把列表里的元素一个一个拿出来处理

这就叫遍历

遍历列表一共有4种写法:1种while循环 + 3种for循环。第1种最累人,第4种最爽快。我们一个一个来看。

什么是遍历?

遍历,就是把容器中的元素依次取出并对它们进行处理的过程。

打个比方:列表就像一排储物柜,遍历就是你从第0个柜子开始,一个一个打开,把里面的东西拿出来看看,直到最后一个柜子。

主要两种方式:while循环遍历 和 for循环遍历。

一、while循环遍历(最累的一种)

先看代码,有个成绩列表,要把每个成绩打印出来:

score_list = [62, 50, 85, 92, 77, 58, 88]

index = 0                              # 第1步:建计数变量,从0开始
while index < len(score_list):         # 第2步:循环条件,小于列表长度
    print(score_list[index])           # 第3步:用下标取元素
    index += 1                         # 第4步:计数器+1,别忘了!

运行结果:依次打印 62、50、85、92、77、58、88。

你看,while循环遍历需要你自己管4件事:建变量、写条件、取元素、加计数器。少一步都不行。

三个坑,踩一个就翻车

坑1:index从1开始

index = 1  # 从1开始
while index < len(score_list):
    print(score_list[index])
    index += 1

结果:第一个成绩62直接被跳过了!因为第一次进来访问的是 score_list[1],也就是50,62丢了。

坑2:写了小于等于

index = 0
while index <= len(score_list):  # 写了等号
    print(score_list[index])
    index += 1

结果:IndexError报错!列表有7个元素,下标0到6。最后一次循环 index=7,但 score_list[7] 根本不存在。

坑3:忘了写 index += 1

不写这行,index永远是0,while index < 7 永远成立——死循环,电脑跑到冒烟。

while遍历就像你自己搬砖:得记着从第几块开始、搬完别多数、搬完别忘了往前走。少记一个就出事。

二、for循环写法1:直接遍历(最简单最常用)

同样是那个成绩列表,for循环只需要两行:

score_list = [62, 50, 85, 92, 77, 58, 88]

for item in score_list:
    print(item)

运行结果一模一样:62、50、85、92、77、58、88。

就这样?对,就这样。

不需要建计数变量,不需要写循环条件,不需要手动加1。for item in score_list 的意思是:列表自己排好队,元素一个一个走到 item 里,你只管处理就行。

如果用"排队"来比喻——while循环是你自己拿着号一个一个去找人,for循环是人自动排队从你面前走过。

变量名建议用 item、score 这类有意义的名字,不要用 index。因为 index 通常表示索引、编号,用它当元素变量名会误导别人以为拿到的是下标。

三、for循环写法2:range + len 按索引遍历

这种写法不直接拿元素,而是先拿到下标,再通过下标取元素:

score_list = [62, 50, 85, 92, 77, 58, 88]

for index in range(len(score_list)):
    print(score_list[index])

拆解一下:

效果跟写法1完全一样,但明显更麻烦。那什么时候用这种写法?当你需要下标本身的时候——比如要根据下标做判断、修改元素等。

四、for循环写法3:enumerate(最强大的一种)

前两种for循环,要么只拿到元素,要么只拿到下标。第三种写法两个一起拿

score_list = [62, 50, 85, 92, 77, 58, 88]

for index, item in enumerate(score_list):
    print(index, item)

运行结果:

0 62
1 50
2 85
3 92
4 77
5 58
6 88

左边是编号,右边是元素,一次全拿到。

enumerate 是Python内置函数,你把列表交给它,它就帮你把每个元素配上一个编号,循环的时候编号和元素一起给你。

注意语法:index, item 中间用逗号隔开,两个变量同时接收。

如果用"排队"比喻——这种写法就像每个人走过你面前时,还自己举着号牌。你既看到人(元素),又看到号(下标),不用自己数。

enumerate的start参数:改编号不改真实下标

enumerate 还能接收一个 start 参数,控制编号从几开始:

score_list = [62, 50, 85, 92, 77, 58, 88]

for index, item in enumerate(score_list, start=5):
    print(index, item)

运行结果:

5 62
6 50
7 85
8 92
9 77
10 58
11 88

编号从5开始了!

但注意一个特别重要的点:start 改的只是遍历时的编号显示,不会改变列表中元素的真实下标

验证一下——在循环里打印 score_list[0]:

for index, item in enumerate(score_list, start=5):
    print(index, item, score_list[0])

# 循环外再打印一次
print("最后的打印", score_list[0])

运行结果:

5 62 62
6 50 62
7 85 62
...
11 88 62
最后的打印 62

不管 start 是几,score_list[0] 永远是62。因为列表里第0个元素就是62,start 改的是 enumerate 给你的编号,不是列表内部的真实位置。

start参数就像给每个人换了个新工牌号,但他们在队伍里的实际位置没变。

五、四种写法对比表

写法

代码量

能拿到什么

难度

推荐场景

① while循环

4行

下标(需自己取元素)

⭐⭐⭐⭐

不推荐,容易出错

② for item in list

2行

只拿元素

最常用,只需元素时首选

③ for index in range(len(list))

2行

只拿下标

⭐⭐

需要下标做判断时

④ for index, item in enumerate(list)

2行

下标和元素一起拿

⭐⭐

同时需要编号和元素时

总结

遍历列表就是"一个一个拿出来处理",4种写法各有特点:

第1种while最累——自己建变量、写条件、加计数器,三个坑等着你踩:起始值写1丢数据、写等号越界报错、忘加1死循环。

第2种for直接遍历最简单——两行搞定,元素自动排队到你手上。只需要元素时,用它准没错。

第3种for+range+len——按编号取人,需要下标本身时才用。

第4种for+enumerate最爽——编号和元素一起到手,还支持start参数自定义起始编号。需要同时拿到下标和元素时,它是唯一选择。

记住一句话:遍历可迭代对象,for循环是首选。

展开阅读全文

更新时间:2026-07-22

标签:科技   遍历   写法   列表   下标   元素   编号   变量   条件   成绩   参数

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight All Rights Reserved.
Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302034903号

Top