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

如何修改Python代码实现输出列表中重复元素的所有出现位置

实现思路

原代码的while逻辑找到第一个匹配元素就会终止运行,我们只需要遍历完整列表收集所有匹配的索引位置,再拆分输出第一个和剩余位置即可。

修改后的完整代码

numbers = [7,1,3,6,4,2,5,9,8,10,7]
n = int(input("Enter a number from 1 to 10 to search for the number's position: "))

def find_all_positions():
    # 存储所有匹配的1开头计数的位置,和原有代码的计数规则保持一致
    positions = []
    # 遍历列表同时获取索引和对应值
    for idx, num in enumerate(numbers):
        if num == n:
            positions.append(idx + 1)
    return positions

if n in numbers:
    print("Calculating position... (takes 9 years so wait)")
    all_pos = find_all_positions()
    print(f"第一个{n}的位置是:{all_pos[0]}")
    # 存在重复匹配时才输出其余位置
    if len(all_pos) > 1:
        print(f"其余{n}的位置是:{','.join(map(str, all_pos[1:]))}")
else:
    print("Number not found, next time enter a number from 1 to 10!")

核心修改说明

  • 替换原有单次匹配终止的while循环,用enumerate遍历全量列表元素,收集所有匹配项的位置
  • 函数返回所有位置的列表,可灵活拆分首个结果和剩余结果
  • 新增多结果判断逻辑,无重复匹配时不会输出冗余内容

输入7测试时,输出结果为:

第一个7的位置是:1
其余7的位置是:11


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:36:08