我需要做什么: 给定一个整数数组,返回两个数字的索引,以便它们加起来成为一个特定的目标。 示例:
给出数字= [2,7,11,15],目标= 9,
因为nums [0] + nums [1] = 2 + 7 = 9, 返回[0,1]
我做了什么:
class Solution:
def twoSum(self,nums,target):
count=0
i=0
j=0
item=0
result=[]
self.n=nums
self.t=target
count=len(self.n)
for i in range(0,count):
for item in range(0,count):
print(i)
print(item)
j=self.n[i]+self.n[item]
if j==self.t:
result=[i,item]
else:
result=0
return result
a = [3,2,4]
b = 6
c=Solution()
print (list(c.twoSum(a,b)))
结果:
0
0
0
1
Traceback (most recent call last):
File "test-1213--Twosum-调试1.py", line 24, in <module>
print (list(c.twoSum(a,b)))
TypeError: 'int' object is not iterable
答案 0 :(得分:0)
这里的问题是结果并不总是一个列表,在第一个实例中您有result = [i,item]
,在其他情况下:您将它作为整数返回,而该整数在python中不是可迭代的对象。将您的代码更改为此,它应该可以工作:
class Solution:
def twoSum(self,nums,target):
count=0
i=0
j=0
item=0
result=[]
self.n=nums
self.t=target
count=len(self.n)
for i in range(0,count):
for item in range(0,count):
print(i)
print(item)
j=self.n[i]+self.n[item]
if j==self.t:
result=[i,item]
else:
result=[0]
return result
a = [3,2,4]
b = 6
c=Solution()
print(type(c.twoSum(a,b)))
print (list(c.twoSum(a,b)))
在将result=0
行更改为result=[0]
之前,在添加列表指示符后,print(type(c.twoSum(a,b)))
的输出为<class 'int'>
,这就是您所需要的<class 'list'>
希望收到您的print (list(c.twoSum(a,b)))
对帐单。