You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用enumerate遍历列表时触发TypeError:'NoneType'对象不可迭代

问题修正方案

错误根源在于**list.sort()是原地排序方法**,它会直接修改原列表的顺序,但返回值为None。你将这个None重新赋值给了waiting_list,导致后续遍历waiting_list时,实际是在迭代一个NoneType对象,触发了TypeError。

修正方法一:直接调用sort()(不重新赋值)

这种方法会直接修改原列表的顺序,适合不需要保留原列表初始状态的场景:

waiting_list = ["sen", "ben", "john"]
waiting_list.sort()  # 原地排序,无需接收返回值

for index, item in enumerate(waiting_list):
    row = f"{index+1}.{item.capitalize()}"
    print(row)

修正方法二:使用sorted()函数返回新列表

如果需要保留原列表的初始顺序,可以用sorted()函数,它会返回一个全新的排序后的列表,原列表不受影响:

waiting_list = ["sen", "ben", "john"]
sorted_list = sorted(waiting_list)  # 获取排序后的新列表

for index, item in enumerate(sorted_list):
    row = f"{index+1}.{item.capitalize()}"
    print(row)

两种方法运行后都会输出正确的排序结果:

1.Ben
2.John
3.Sen

内容的提问来源于stack exchange,提问作者Seenivasan K.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 20:57:04