代码之家  ›  专栏  ›  技术社区  ›  OtagoHarbour

检查列表中的元素时出现“TypeError:类型为'int'的参数不可迭代”

  •  0
  • OtagoHarbour  · 技术社区  · 3 年前

    我在Spyder上使用Python 3.7,并有以下代码

    def NailingPlanks(A,B,C):
        numInervals = len(A)
        maxNails = len(C)
        
        intervals = []
        covered = [0]*numInervals
        
        for i in range(numInervals):
            interval = []
            for j in range(A[i],B[i]+1): interval.append(j)
            intervals.append(interval)
            
        nails = []
        nailUsed = [False] * maxNails
        print('covered = ', covered)
        while (0 in covered):
            MaxCovered = 0
            for i in range(maxNails):
                if not nailUsed[i]:
                    nail = C[i]
                    cnt = 0
                    for j in range(numInervals):
                        if covered[j]==0 and nail in intervals[j]: cnt += 1
                    if cnt>MaxCovered:
                        MaxCovered = cnt
                        maxIndex = i
            nails.append(maxIndex)
            nailUsed[maxIndex] = True
            for j in range(numInervals):
                if nail in intervals[j]: covered=1
                
        print('nails=', nails)
        return len(nails)
    

    当它运行时,我得到以下输出

    Traceback (most recent call last):
    
      File "<ipython-input-492-8fb88643c6e1>", line 1, in <module>
        NailingPlanks(A,B,C)
    
    File "<ipython-input-491-4c2e538033de>", line 16, in NailingPlanks
    while (0 in covered):
    
    TypeError: argument of type 'int' is not iterable
    

    我在航站楼收到以下信息

    not (0 in covered)
    Out[494]: False
    
    0 回复  |  直到 3 年前