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()
),然后获取该位置的数字
由于这个问题听起来像是家庭作业或学校作业,我不会给出完整的答案。现在应该可以解决这个问题了
让老师高兴的更多提示:
并不是导致6的唯一解决方案。您还希望排除其他无效组合。专业提示:有一个很好的解决方案,它不需要任何检查,运行速度更快。一旦你改变了逻辑,很容易找到[0,0]
- 目前,您在对象的构造函数中完成所有工作。也许你需要一个能进行实际计算的方法
- 您的变量名不能自我解释。不要使用那么多单字母变量
[]
。我也没有在笔记本中得到任何输出,但当我将此代码粘贴到leet代码编辑器中时,我得到[]作为输出。这可能会有帮助吗?