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

如何实现验证列表两索引对应元素之和等于目标值并输出配对信息

现有代码存在的问题

  • length函数逻辑冲突:你设定的无效判定是长度≥10或≤2,后续有效分支的判断条件却写了≥2且≤10,前后矛盾;同时break_loop == True是判断语句,不是赋值语句,虽然你后续加了break不会触发死循环,但属于冗余错误代码。
  • entries函数逻辑错误:每次执行元素添加前都会执行lst = []清空列表,最终列表只会保留最后一个输入的数值,无法得到完整的输入列表。
  • 变量作用域问题:target函数内输入的目标值没有定义为全局变量,后续逻辑无法读取该数值。

修复后完整实现代码

def get_length():
    global lst_length
    while True:
        lst_length = int(input("Enter the length: "))
        # 修正有效范围为3~9,匹配你原逻辑的无效判定规则
        if 2 < lst_length < 10:
            print('This list contains', lst_length, 'entries')
            break
        print("Invalid list, length should be between 3 and 9")

def get_entries():
    global lst
    lst = []
    for x in range(lst_length):
        number = float(input(f"Enter the entry at index {x}:"))
        lst.append(number)

def get_target():
    global target_num
    target_num = float(input("Enter the target number: "))

def find_two_sum():
    # 遍历所有不重复的索引对,避免i和j互换的重复匹配
    for i in range(len(lst)):
        for j in range(i+1, len(lst)):
            if lst[i] + lst[j] == target_num:
                print(f"匹配到符合条件的组合:数值 {lst[i]}(索引{i}) + 数值 {lst[j]}(索引{j}) = 目标值{target_num}")

# 执行流程
get_length()
get_entries()
get_target()
find_two_sum()

功能说明

  • 输入的列表长度会限制在3~9之间,不符合要求会提示重新输入
  • 支持输入浮点数类型的列表元素和目标值,匹配精度更高
  • 会自动遍历所有不重复的索引对,匹配成功就输出对应的数值和索引,不会出现重复的逆序组合
  • 如果需要匹配失败时输出提示,可以在find_two_sum函数末尾自行添加对应逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:09:02