Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试添加两个数字,从列表中读取它们并从实际列表中打印它们的索引号_Python_Python 3.x - Fatal编程技术网

Python 尝试添加两个数字,从列表中读取它们并从实际列表中打印它们的索引号

Python 尝试添加两个数字,从列表中读取它们并从实际列表中打印它们的索引号,python,python-3.x,Python,Python 3.x,给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标。 ,在每个输入中,不会两次使用同一元素 class solution(): def __init__(self,array_num,target_num): self.array_num=array_num self.target_num=target_num for t in self.array_num: for b in self.

给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标。 ,在每个输入中,不会两次使用同一元素

class solution():
    def __init__(self,array_num,target_num):
        self.array_num=array_num
        self.target_num=target_num
    
        for  t in self.array_num:
            for  b in self.array_num:
                e=t+b
                w=self.array_num.index(t),self.array_num.index(b)
                y=list(w)
                if e==self.target_num:
                    
                    if y==[0,0]:
                        break
                    else:
                        print(y)

p=[3,3]
so=solution(p,6)
输出

[] or nothing
[0,1]
预期产出

[] or nothing
[0,1]

问题是,如果出现以下数字,您要求列表为您提供索引:

self.array_num.index(t)
这将始终为您提供第一个引用,此处为0,尽管循环实际上位于索引为1的第二个位置

为了避免这种情况,请颠倒逻辑:为索引创建循环(使用
len()
range()
),然后获取该位置的数字

由于这个问题听起来像是家庭作业或学校作业,我不会给出完整的答案。现在应该可以解决这个问题了

让老师高兴的更多提示:

  • [0,0]
    并不是导致6的唯一解决方案。您还希望排除其他无效组合。专业提示:有一个很好的解决方案,它不需要任何检查,运行速度更快。一旦你改变了逻辑,很容易找到
  • 目前,您在对象的构造函数中完成所有工作。也许你需要一个能进行实际计算的方法
  • 您的变量名不能自我解释。不要使用那么多单字母变量

我没有得到任何输出,甚至没有,
[]
。我也没有在笔记本中得到任何输出,但当我将此代码粘贴到leet代码编辑器中时,我得到[]作为输出。这可能会有帮助吗?