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

Python实现按键控制分页迭代列表元素(每次10个)

修正后的按键分页控制代码

直接解决你的翻页越界问题,核心是限制display的取值范围,同时用列表切片替代索引循环来避免访问不存在的元素。以下是修正后的完整代码:

display = 0
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
# 计算最大允许的页码(从0开始计数)
max_page = (len(items) - 1) // 10

while True:
    # 用切片直接获取当前页的元素,自动处理最后一页不足10个的情况
    current_page_items = items[display * 10 : display * 10 + 10]
    for item in current_page_items:
        print(item)
    
    # 获取按键输入
    key = input()
    if key == 'y':
        # 只有当前页不是最后一页时,才允许翻下一页
        if display < max_page:
            display += 1
    else:
        # 只有当前页不是第一页时,才允许翻上一页
        if display > 0:
            display -= 1

关键修正点:

  • 替换索引循环为列表切片:items[display*10 : display*10+10]会自动处理最后一页元素不足10个的情况,不会触发索引越界错误,同时代码更简洁,无需分列表长度≤10和>10的分支。
  • 计算最大页码:max_page = (len(items)-1)//10,比如14个元素时,(14-1)//10=1,对应第0页(1-10)和第1页(11-14),确保display不会超过这个值。
  • 限制display的边界:
    • 按'y'时,只有display < max_page才允许加1,避免翻到不存在的页面。
    • 按其他键时,只有display > 0才允许减1,避免翻到负数页码。

如果后续要迁移到curses模块,只需要把input()替换为curses.getch()获取按键,同时调整屏幕输出逻辑即可,核心的分页控制逻辑可以直接复用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 10:15:07