以下代码在调用时读取类外部的值会引发错误。我做不到!nums = [2,7,11,15], target = 9class Solution(object): def twoSum(self, nums, target): d = {} for i, n in enumerate(nums): m = target - n if m in d: return [d[m], i] else: d[n] = iError: nums = [2,7,11,15], target = 9 ^SyntaxError: cannot assign to literal如何在类外读取nums和target的值?请解释。我无法弄清楚。只有当我这样做时它才有效。if __name__ == '__main__': s = Solution() print (s.twoSum([2,7,11,15], 9))为什么不反过来 -> nums = [2,7,11,15], target = 9
3 回答
![?](http://img1.sycdn.imooc.com/5333a1660001394602000200-100-100.jpg)
阿波罗的战车
TA贡献1862条经验 获得超6个赞
您应该只在单独的行上分配值。 nums = [2,7,11,15], target = 9
正在尝试将 9 分配给 nums 并尝试将 9 分配给您的列表和目标。“无法分配给文字”是因为它尝试将值 9 分配给列表。如果您替换列表中的变量,则会失败,因为单个值 9 无法解压缩为两个变量。
![?](http://img1.sycdn.imooc.com/54584cfb0001308402200220-100-100.jpg)
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
由于语法部分是由其他人处理的,如果您想在类中使用 nums 和 target,请从类方法定义中删除参数 nums 和 target,如下所示:
nums = [2,7,11,15]
target = 9
class Solution(object):
def twoSum(self): # here is the change
d = {}
for i, n in enumerate(nums):
m = target - n
if m in d:
return [d[m], i]
else:
d[n] = i
if __name__ == '__main__':
s = Solution()
print (s.twoSum())
添加回答
举报
0/150
提交
取消