以下代碼在調用時讀取類外部的值會引發錯誤。我做不到!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 回答

阿波羅的戰車
TA貢獻1862條經驗 獲得超6個贊
您應該只在單獨的行上分配值。 nums = [2,7,11,15], target = 9
正在嘗試將 9 分配給 nums 并嘗試將 9 分配給您的列表和目標?!盁o法分配給文字”是因為它嘗試將值 9 分配給列表。如果您替換列表中的變量,則會失敗,因為單個值 9 無法解壓縮為兩個變量。

蝴蝶刀刀
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
提交
取消