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

Python中如何打印列表元素并使其编号从1开始

你修改range参数后触发越界的原因很简单:Python列表的索引默认从0开始,list2的有效索引范围是0 ~ len(list2)-1,当你把range设为range(1, len(list2)+1)时,循环变量i最大会取到len(list2),此时访问list2[i]就超出了列表的有效索引范围,自然会报错。

方案1:打印时直接给序号+1

不用改动range的参数,只需要在打印序号的时候把i加1即可,改动量最小:

import random
list1 = [name1,name2,name3,name4,name5,name6,name7,name8,name9,name10]
list2 = random.sample(list1,6)
for i in range(len(list2)):
    print(i+1, list2[i])

方案2:用enumerate指定起始序号(更推荐)

Python内置的enumerate函数可以直接自定义遍历的起始序号,写法更简洁易读,也符合Python的编码习惯:

import random
list1 = [name1,name2,name3,name4,name5,name6,name7,name8,name9,name10]
list2 = random.sample(list1,6)
# start参数指定序号从1开始
for idx, name in enumerate(list2, start=1):
    print(idx, name)

如果你需要输出要求的表格格式,可以用以下代码直接生成Markdown表格:

import random
list1 = [name1,name2,name3,name4,name5,name6,name7,name8,name9,name10]
list2 = random.sample(list1,6)
# 输出表格表头和分隔线
print("| 序号 | 姓名 |")
print("| ---- | ---- |")
for idx, name in enumerate(list2, start=1):
    print(f"| {idx} | {name} |")

运行后输出的效果示例如下:

序号姓名
1name3
2name7
3name1
4name10
5name4
6name8

内容的提问来源于stack exchange,提问作者Noobie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:24:09