首页 > 解决方案 > 为什么在循环时不使用整数时会出现整数(类型)错误?

问题描述

我在下面有一个解决 TwoSumsII 问题的方法,我们基本上有一个排序整数列表和一个目标,我们希望返回所有加起来为目标的 2 个数字的集合:

nums = [2,7,11,15]
target = 18

comp= dict()          
  
for i in range(len(nums)-1):
    comp = target - nums[i]     
    if nums[i] in comp:
        print(comp[nums[i],i])

    else:
        print("Target cannot be reached")

出于某种原因,我收到if nums[i] in comp: TypeError 的错误:“int”类型的参数不可迭代。

我不明白这个错误,因为我没有看到这行代码中的整数是什么?-是nums[i] 整数吗?

另外,我对在此解决方案中使用 dict() 有疑问。我是否正确地说我们正在使用字典,它提供了一种存储“键”-“值”对的方法?在这种情况下,“键”是列表中每个数字的索引,并且value是 comp,在哪里comp = target - nums[i]

标签: pythonlistdictionary

解决方案


nums = [2,7,11,15]
target = 18

comp= dict()            
                      
for i in range(len(nums)-1):
    comp[i] = target - nums[i]     

    if comp[i] == nums[i+1]:
        print(i,i+1)

我找到了一个解决方案,它似乎有效!


推荐阅读