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

如何实现find函数查找list中key的位置并解决无输出问题?

问题排查与修正

你的代码存在的几个问题

  • 索引更新逻辑错误:你把index += 1放在了if判断内部,只有找到匹配元素时才会递增索引,这会导致不匹配元素的位置完全被跳过,索引值根本无法正确对应列表的真实位置。
  • 测试参数错误:你调用find(my_list, 5),但你的测试列表my_list里根本没有数字5,自然不会有任何输出。
  • 不符合需求要求:需求明确要求使用带index变量和range的for loop,但你直接遍历了列表元素,没有用range生成索引范围。
  • 输出格式不符:预期输出是Found {key} at position {index}的格式,你的代码只打印了索引值。

修正后的代码

def find(my_list, key):
    for index in range(len(my_list)):
        if my_list[index] == key:
            print(f"Found {key} at position {index}")

# 用需求里的测试代码验证
my_list = [36, 31, 79, 96, 36, 91, 77, 33, 19, 3, 34, 12, 70, 12, 54, 98, 86, 11, 17, 17]
find(my_list, 12)
find(my_list, 91)
find(my_list, 80)

代码说明

  1. 使用range(len(my_list))生成从0到列表长度-1的索引范围,直接遍历索引值,完美符合需求要求。
  2. 通过my_list[index]获取对应索引的元素,和key做比较。
  3. 找到匹配元素时,按照预期格式输出内容。
  4. 调用时使用需求里的测试参数,就能得到预期的输出结果。

内容的提问来源于stack exchange,提问作者Rako D. Ahmed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:45:26