为什么我在运行此代码时收到此错误?
Traceback (most recent call last):
File "main.py", line 13, in <module>
def twoSum(self, nums: list[int], target: int) -> list[int]:
TypeError: 'type' object is not subscriptable
nums = [4,5,6,7,8,9]
target = 13
def twoSum(self, nums: list[int], target: int) -> list[int]:
dictionary = {}
answer = []
for i in range(len(nums)):
secondNumber = target-nums[i]
if(secondNumber in dictionary.keys()):
secondIndex = nums.index(secondNumber)
if(i != secondIndex):
return sorted([i, secondIndex])
dictionary.update({nums[i]: i})
print(twoSum(nums, target))
原文由 yuenster 发布,翻译遵循 CC BY-SA 4.0 许可协议
以下答案仅适用于 Python < 3.9
表达式
list[int]
试图为对象list
添加下标,这是一个类。类对象是其元类的类型,在本例中为type
。由于type
没有定义__getitem__
方法,你不能做list[...]
。要正确执行此操作,您需要导入
typing.List
并使用它代替内置的list
在您的类型提示中:如果你想避免额外的导入,你可以简化类型提示以排除泛型:
或者,您可以完全摆脱类型提示: