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

Python如何按指定步长循环排除列表元素后获取最终剩余项

循环排除元素取剩余项实现方案

你描述的是经典的约瑟夫环场景,以下是易读易懂的Python实现,完全匹配你给出的规则:

完整可运行代码

def find_last_element(x, original_list):
    # 拷贝原始列表避免修改原输入数据
    current_list = original_list.copy()
    # 记录下一轮计数的起始索引,初始从列表头部(索引0)开始
    start_idx = 0
    # 循环直到列表仅剩1个元素
    while len(current_list) > 1:
        # 计算要移除的元素索引,取模运算处理计数到末尾循环到头部的场景
        remove_idx = (start_idx + x - 1) % len(current_list)
        # 移除对应位置元素
        current_list.pop(remove_idx)
        # 下一轮起始位置为本次移除的索引位置(元素移除后后续项前移,刚好对应被删元素的下一位)
        start_idx = remove_idx
    return current_list[0]

# 测试你给出的示例
x = 4
my_list = ["apple", "banana", "candy", "durian", "elephant", "flower"]
result = find_last_element(x, my_list)
print(result) # 输出结果为 elephant

核心逻辑说明

  • 每次计算移除索引时用% len(current_list)取模,自动适配当前列表长度,不需要手动处理循环跳转逻辑
  • 全程操作原始列表的拷贝副本,不会修改你输入的原始数据
  • 代码逻辑和你给出的示例规则完全对齐,测试运行结果与你示例的最终输出elephant一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:36:03