Python 错误"cannot unpack non-iterable int object"



我想获得列表中元素的索引,这些索引加起来就是总和。

numbers = [10,2,3,5,8,200]
sum = 12
for i,v in numbers:
if i+v == sum:
print(numbers[i]), print(numbers[v])
else:
print("other")

但我得到了这个错误:

Traceback (most recent call last):
File "C:UserUserPycharmProjectstrainingtests.py", line 9, in <module>
for i,v in numere:
TypeError: cannot unpack non-iterable int object

这是LeetCode上臭名昭著的Two Sum问题,正如LeetCode所说:

我们可以一次搞定。当我们迭代并将元素插入哈希表时,我们还会回过头来检查哈希表中是否已经存在当前元素的补码。如果它存在,我们已经找到了解决方案,并立即返回索引。

def twoSum(nums: List[int], sum: int) -> List[int]:
hashmap = {}
for i in range(len(nums)):
complement = sum - nums[i]
if complement in hashmap:
return [i, hashmap[complement]]
hashmap[nums[i]] = i
x = twoSum(nums=numbers, sum=sum)
print(x)

不能期望从这样的list项中获取索引。改为使用enumerate()来完成它。

for i, v in enumerate(numbers):

最新更新