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

使用enumerate生成新列表时跳过序号5的Python技术问题

解决方法

我来帮你搞定这个需求!核心就是保留所有原数据,但调整序号,跳过5,把原本的5号直接改成6,后面的序号依次顺延。这里有两种简单易懂的实现方式:

方法一:用enumerate结合条件判断(简洁版)

这种方法用列表推导式就能一行搞定,逻辑清晰:

# 假设你的样本列表长这样(可以替换成你自己的)
sample_list = [['101'], ['102'], ['103'], ['104'], ['105'], ['106'], ['107']]

# 生成目标列表
new_list = [
    f"{idx + 1 if idx >= 5 else idx}. Room number: {sublist[0]}"
    for idx, sublist in enumerate(sample_list, start=1)
]

print(new_list)

逻辑说明:

  • enumerate(sample_list, start=1)给每个子列表分配从1开始的原始序号idx
  • 当原始序号idx >=5时,我们给序号加1(比如原本的5变成6,6变成7,自动跳过了5);小于5的序号直接用原始值
  • 用f-string格式化出你要的字符串格式

运行后输出会是:

['1. Room number: 101', '2. Room number: 102', '3. Room number: 103', '4. Room number: 104', '6. Room number: 105', '7. Room number: 106', '8. Room number: 107']

方法二:用计数器变量(直观版)

如果你觉得列表推导式有点绕,用计数器变量一步步来更直观:

sample_list = [['A'], ['B'], ['C'], ['D'], ['E'], ['F']]
new_list = []
counter = 1

for sublist in sample_list:
    room_num = sublist[0]
    # 当计数器到5时,直接跳转到6
    if counter == 5:
        counter += 1
    # 生成并添加目标字符串
    new_list.append(f"{counter}. Room number: {room_num}")
    # 计数器正常递增
    counter += 1

print(new_list)

逻辑说明:

  • 初始化计数器counter为1,每次循环对应一个房间
  • 当计数器刚好到5时,我们先把它加1变成6,这样就跳过了5这个序号
  • 生成字符串后,计数器再正常递增,保证后面的序号依次顺延

运行后输出:

['1. Room number: A', '2. Room number: B', '3. Room number: C', '4. Room number: D', '6. Room number: E', '7. Room number: F']

两种方法都能完美满足你的需求:不跳过任何原数据,只是序号跳过5,把原本的5号改成6,后续序号自动跟上。你可以根据自己的习惯选一种就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:39:47