这里有很多问题,我会一个一个地解决
数据结构dict = {}
这不仅覆盖了python的dict(参见mgilson的注释),而且这是项目的错误数据结构。应该改用列表(如果有唯一的无序值,则使用集合)
使用数据结构
数据结构是一个实例变量,需要用self和__init__函数定义它。你应该用这样的东西:class TwoSum(object):
def __init__(self):
self.numbers = []
添加定义def add(self,n):
dict[n] = n
将项目分配给词典并不是这样做的。你应该把它附加到你的列表中。此外,您还需要使用self.variableName = value附加到该实例的列表中
定义查找
这个范围是错误的,您需要一个嵌套的范围,或者itertools.combinations,因为您必须检查任意两个总和为某个值的数字,pythonssum()在这里很方便。
要循环遍历数字,可以使用两个范围或itertools.combinations
守则import itertools
class TwoSum(object):
def __init__(self):
self.numbers = []
def add(self, num):
self.numbers.append(num)
def find(self, desiredSum):
for nums in itertools.combinations(self.numbers, 2):
if sum(nums) ==